McBirne Geschrieben 13. September 2005 Geschrieben 13. September 2005 Ich habe einen COM – Server erstellt, welcher zwei void Methoden besitzt. Nun möchte ich die Methoden von einem C++ Programm aus aufrufen. Von Basic aus funktioniert es, allerdings weiß ich nicht, wie ich das in c++ machen kann. Kann mir da jemand helfen? Zitieren
Klotzkopp Geschrieben 14. September 2005 Geschrieben 14. September 2005 Eine Möglichkeit ist, mit der #import-Direktive die Typbibliothek zu importieren und dann mit CoCreateInstance eine Instanz zu erzeugen. Die ATL bietet dazu ein paar schöne Hilfsklassen, wie z.B. Smartpointer. Zitieren
McBirne Geschrieben 14. September 2005 Autor Geschrieben 14. September 2005 Du meins also: #import "comServer.h" Und dann? :confused: Kannst du vielleicht ein C++ Codebeispiel geben? Nennen wir einfach den ComServer comserver und die aufzurufende Methode einfach Methoder(long variable1, float Variabel2). Ein Codebeispiel wäre echt super. Zitieren
Klotzkopp Geschrieben 14. September 2005 Geschrieben 14. September 2005 Du meins also: #import "comServer.h" Nein. Wenn du eine (generierte) Headerdatei hast, musst du die mit #include einbinden. Eine Typbibliothek (.tlb) bindest du mit #import ein. #include <windows.h> #include <atlbase.h> #import "comserver.tlb" // ODER #include "comserver.h" int main() { CoInitialize(0); { CComPtr<Icomserver> p; HRESULT hr = p.CoCreateInstance(__uuidof(comserver)); if(SUCCEEDED(hr)) { p->Methoder(1, 42.0); } } } [/code] Zitieren
Guybrush Threepwood Geschrieben 14. September 2005 Geschrieben 14. September 2005 Guck mal hier EDIT: hmm zu spät Zitieren
McBirne Geschrieben 14. September 2005 Autor Geschrieben 14. September 2005 Vielen Dank! Ich werde es direkt mal ausprobieren, aber denke, dass ich es mit den Beispielen hinbekomme Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.