Mit MFC Excel steuern



  • Hallo

    Benötige dringend eure Hilfe möchte gerne mit einer MFC Applikation Excel steuern.

    Dazu bin ich nach folgender Anleitung Schritt für Schritt vorgegangen:

    http://support.microsoft.com/kb/307473/DE/

    Leider Erhalte ich 187 Compilerfehler und 25 Warnungen.

    Jetzt weiß ich nicht genau wie ich die Fehler hier beschreiben soll kann ja nicht alle 187 aufzählen.

    Vieleicht hat ja jemand das auch schon mal gemacht und weiß worauf man noch achten muss.

    Für jede Hilfe Dankbar.

    Gruß der Excler


  • Mod

    Excler schrieb:

    Leider Erhalte ich 187 Compilerfehler und 25 Warnungen.

    Jetzt weiß ich nicht genau wie ich die Fehler hier beschreiben soll kann ja nicht alle 187 aufzählen.

    Aber Du kannst die ersten aufzählen... Dann sieht man evtl. was schief läuft.



  • Ok...

    _COM_SMARTPTR_TYPEDEF(Font, __uuidof(Font));
    

    Fehler 1 error C2371: 'FontPtr': Neudefinition; unterschiedliche Basistypen e:\projekte\tests & examples\excelcontroler\excelcontroler\debug\excel9.tlh 982

    _COM_SMARTPTR_TYPEDEF(Rectangle, __uuidof(Rectangle));
    

    Fehler 2 error C2786: 'BOOL (__stdcall *)(HDC,int,int,int,int)': Ungültiger Operand für __uuidof e:\projekte\tests & examples\excelcontroler\excelcontroler\debug\excel9.tlh 1060

    _COM_SMARTPTR_TYPEDEF(Rectangle, __uuidof(Rectangle));
    

    Fehler 3 error C2923: "_com_IIID": "Rectangle" ist kein gültiges template-Typargument für den _Interface-Parameter. e:\projekte\tests & examples\excelcontroler\excelcontroler\debug\excel9.tlh 1060

    Hoffe das bringt was



  • Muss ich da noch was einbinden was da nicht steht. Irgendwelche Einstellungen??



  • Hallo,

    probier mal folgendes (englisches VS2008):

    Mit der rechten Maustaste auf dein Projekt klicken, Add und danach Class auswählen. Dann "MFC Class from TypeLib" auswählen und Add klicken. Hier kannst du wählen zwischen "Registry" oder "File". Wenn du Registry wählst, kannst du in der Dropdown-Box einfach "Microsoft Excel 12.0 Object Library" auswählen. Der Eintrag ist je nach Version unterschiedlich (12.0 = Office/Excel 2007).

    Danach kannst du dir die Klassen die du benötigst auswählen. Danach auf "Finish" klicken und Klassen in dein Projekt inkludieren und fertig!


  • Mod

    Wie hast Du das #import statement definiert?



  • Hallo

    @automation

    Genau das steht in der Beschreibung den ich als Link angefügt habe. Und genau so bin ich ja vorgegangen.

    @ Martin Richter

    Wie hast Du das #import statement definiert?

    Wie meinst das. Ich habe gar kein #import statement. Nochmals bin genau nach der Anleitung vorgegangen und da steht nichts von einem #import statement



  • Ups habe ich doch tatsächlich den falschen Benutzernamen genommen.



  • Sorry, hatte den Link nicht ganz gelesen.

    Du kannst TypeLibs auch mit der Anweisung #import importieren (so wie Martin Richter schon sagte).

    Siehe
    http://msdn.microsoft.com/en-us/library/8etzzkb6(VS.71).aspx



  • Das macht aber keinen Unterschied. Die benötigten Klassen sind ja vorhanden. Ich erhalte aber Compilerfehler wie schon geschrieben. Ohne die Klassen bereits zu verwenden.

    Den importierten Klassen fehlt etwas.



  • Liegt das an der VS Version? Benutze VS2008?



  • Excler schrieb:

    Liegt das an der VS Version? Benutze VS2008?

    Aber hoffentlich keine VS2008 EE (Express Edition) ?

    Diese kostenlose Version unterstützt nämlich kein MFC (also unabhängig von Excel-Klassen) !!!

    Martin



  • Nein keine Express. Eine Professional. Habe es nun auch unter VS2005 getestet genau die selben Fehler.

    Oder liegt es an der Excelversion (Excel 2000). Kann ja fast auch nicht sein oder?



  • Alle Fehler und Warnungen sind in der excel9.tlh

    Diese Datei wurde ja generiert. Wieso sind den in einer generierten Datei Compilerfehler. Und wieso heißt die eigentlich .tlh?


  • Mod

    Excler schrieb:

    Diese Datei wurde ja generiert. Wieso sind den in einer generierten Datei Compilerfehler. Und wieso heißt die eigentlich .tlh?

    tlh = COM Type Library Header



  • tlh = COM Type Library Header

    Achso. Danke. So nun stellt sich nur noch die Frage wieso diese Datei Fehler enthält. Da du COM schreibst könnte es darauf zurückzuführen sein. Muss ich da noch was einstellen?



  • In der generierten Klasse CApplication.h ist übrigens das import Statement wie folgt implementiert:

    #import "C:\\Programme\\Microsoft Office\\Office\\EXCEL9.OLB" no_namespace

    Hat den keiner eine Lösung bin fast am Verzweifeln.



  • Hallo.

    Bei mir ist es fast gleich. Ich will mit MFC Word steuern. Bin auch so vorgegangen wie du. Erhalte beim kompilieren auch Fehler 219 Stück. Auch alle in der msword9.tlh.

    Irgendwas läuft da schief, das nirgends steht und keiner weiß.



  • So jetzt habe ich das ganze noch mit Visual Studio 2003 getestet und was soll ich sagen: Es läuft.

    Und wieso das ganze. Kann man Excel 2000 nur mit VS 2003 steuern. Brauch ich für Visual Studio 2008 eine aktuellere Excel Version.

    Was ich auch nicht verstehe: In den Hilfeseiten von Microsoft z.B. diese http://support.microsoft.com/kb/178782/de steht folgender Codeauschnitt

    range.SetValue(COleVariant("A1A1"));
    

    So die Funktion heißt aber in der generierten Klasse nicht SetValue sondern put_Value().

    Wieso denn sowas?

    Kennt sich hier denn keiner mit dem Thema aus?



  • Könnt ihr mir ein Forum nennen wo man sich mt sowas auskennt?


Anmelden zum Antworten