La programmation COM en C est très douloureuse, mais pas impossible. La balle s'arrête ici cependant. Le but d'une bibliothèque de types est de disposer d'un outil qui génère automatiquement l'interface COM et les déclarations de classe de sorte que vous puissiez les utiliser dans votre code. Tout à fait similaire à un fichier .h, mais indépendant du langage. L'équivalent .NET correspond aux métadonnées d'un assembly.
Le problème est que l'outil n'est pas disponible pour convertir une déclaration .tlb en C. Je suis sûr que vous connaissez #import, c'est ce qui est utilisé dans MSVC. Mais il génère du code C++, des pointeurs intelligents qui vous aident à créer l'objet COM, appellent ses méthodes d'interface et traitent les erreurs. S'il y a un outil disponible qui génère C alors c'est un secret très bien caché.
Un truc saute à l'esprit, vous pouvez utiliser OleView.exe, File + View TypeLib pour afficher le contenu de la bibliothèque de types. Cette vue est décompilée en IDL, le langage de définition d'interface. Vous pouvez copier et coller ce texte dans un fichier .idl et le compiler avec midl.exe avec l'option de ligne de commande/header. Cela génère un fichier .h contenant à la fois les déclarations C++ et C pour les interfaces. Pour vous rapprocher, assurez-vous que la bibliothèque de types est raisonnablement stable, donc vous n'avez pas besoin de le faire très souvent.
je reçois c2773 erreur: #import et #using disponibles uniquement dans le compilateur C++ – rplusg