COM-Programmierung in C ist sehr schmerzhaft, aber nicht unmöglich. Der Dollar bleibt hier jedoch stehen. Der Punkt einer Typbibliothek besteht darin, dass ein Tool die COM-Schnittstelle und die Co-Klassen-Deklarationen automatisch generiert, damit Sie sie in Ihrem Code verwenden können. Ziemlich ähnlich wie eine .h-Datei, aber sprachunabhängig. Das .NET-Äquivalent ist die Metadaten in einer Assembly.
Problem ist, das Werkzeug ist nicht verfügbar, um eine TLB in C-Deklarationen zu konvertieren. Ich bin sicher, dass Sie mit #import vertraut sind, das wird in MSVC verwendet. Aber es erzeugt C++ - Code, intelligente Zeiger, die Ihnen helfen, das COM-Objekt zu erstellen, seine Schnittstellenmethoden aufzurufen und mit Fehlern umzugehen. Wenn es ein Werkzeug gibt, das C generiert, dann ist es ein sehr gut verstecktes Geheimnis.
Ein Trick springt in den Sinn, können Sie OleView.exe, File + View TypeLib verwenden, um den Inhalt der Typbibliothek anzuzeigen. Diese Sicht wird in IDL, der Schnittstellendefinitionssprache, dekompiliert. Sie können diesen Text kopieren und in eine .idl-Datei einfügen und mit midl.exe mit der Befehlszeilenoption/header kompilieren. Das generiert eine H-Datei, die C++ - und die C-Deklarationen für die Schnittstellen enthält. Um Sie näher zu bringen, stellen Sie sicher, dass die Typbibliothek einigermaßen stabil ist, so dass Sie dies nicht sehr oft tun müssen.
i bekommen c2773 Fehler: #import und # using nur in C++ Compiler verfügbar – rplusg