ActiveX



  • Hallo,

    ich habe eine fertige ActiveX-Komponente und möchte diese in einer bestehenden C++-Anwendung nutzen. Im Visual Basic geht dies ja relativ einfach, indem man sich über CreateObject("ÖffentlicherName") eine Instanz von der Klasse holt und dann ganz normal auf die Methoden und Attribute zugreifen kann. Im C++ geht das leider nicht so einfach. Kann mir jemand kurz und knapp erklären wie ich da vorgehen muß? Mir liegen alle Sourcen der Komponente vor (tlb, ocx, odb, h, cpp etc.). Ich möchte keinerlei grafische Sachen nutzen, sondern einfach nur die Dienste in einer Konsolenanwendung über die Methoden in Anspruch nehmen.

    Grüße
    Jens



  • Du musst die ActiveX Komponente einfach dem Projekt hinzufügen. Die Klassen die du dann einbinden kannst werden automatisch generiert.
    Projekt > Dem Projekt hinzufügen > Komponenten und Steuerelemente
    http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel10.htm



  • Vielen Dank für die schnelle Antwort! Auf diese Art und Weise habe ich es schon probiert. Funktioniert mit dem angegebenen Beispiel auch ganz wunderbar. Allerdings möchte ich keine grafische Anwendung erstellen bzw. ist die bestehende Anwendung eine Konsolenanwendung. Ich bin soweit, dass ich mir die .h und .cpp-Dateien erstellen lassen habe. Wie bekomme ich jetzt eine Instanz dieser Klasse? Mit einer einfachen Erstellung auf dem Stack bzw auf dem Heap (über new) funktioniert es aber nicht (hätte mich auch gewundert 😉 ). Leider gibt das Beispiel keine Auskunft darüber, wie eine Instanz der verwendeten Klasse erzeugt wird, da man dort ja einfach nur das Steuerelement auf das Formular zieht. Der Rest passiert im Hintergrund und war für mich leider nicht einsehbar. Gibt es da eine einfache Möglichkeit? COM-Komponenten kann man ja auch einfach erzeugen. Aber hier bekomme ich bei der ActiveX-Komponente auch keine Instanz geliefert. Fehlermeldung: Klasse nicht vorhanden (hab in der Registry geschaut, unter der GUID ist genau die Klasse definiert, steht aber nichts weiter). Nur unter dem Schlüssel mit Klasse.KlasseCtrl.1 steht was. Das ist auch die Klasse, welche ich in das VisualBasic-Programm mit CreateObject einbinde. Nur bekomme ich das wie schon erläutert eben nicht in C++ hin. Hab bis jetzt noch nichts mit der MFC gemacht, bin deswegen ziemlich blank....
    Wäre schön, wenn mir dabei jemand helfen könnte und ich nicht die komplette Materie aus einem Buch rausziehen muß.


Anmelden zum Antworten