Veröffentlicht 13. September 200519 j 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?
14. September 200519 j 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.
14. September 200519 j 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.
14. September 200519 j 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]
14. September 200519 j Vielen Dank! Ich werde es direkt mal ausprobieren, aber denke, dass ich es mit den Beispielen hinbekomme
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.