2017-06-28 3 views
-1

J'ai un projet C++ et un projet C#. Le projet C# accède aux méthodes du projet C++ via 2 dll interop appelé interop.X.dll et interop.XCom.dll. Lorsque mon projet C++ est reconstruit, il crée les fichiers X.tlb et XCom.tlb. Il crée également les fichiers x_i.c, x_h.h, xCom_i.c, xCom_h.c. J'ai trouvé que les fichiers sont créés en raison des paramètres du projet dans "propriétés de configuration -> MIDL -> sortie", comme indiqué ci-dessous;Créer une DLL interop à partir du fichier .tlb

enter image description here

Ce que je dois savoir comment créer les 2 dlls Interop, qui ne soit pas automatiquement créé à l'aide du .tlb et d'autres fichiers c. J'ai essayé d'utiliser tlbimp x.tlb /out:Interop.x.dll, mais la DLL créée ne semble pas fonctionner.

Merci.

+1

Pourquoi ne pas simplement les références TLB by-pass et au lieu simplement ajouter une référence COM directe? – MickyD

+0

Les projets n'ont pas été créés par moi. Donc je ne veux pas trop les changer. – Madz

+1

Huh? L'ajout d'une référence COM à partir de .NET vers votre bibliothèque COM nécessite ** zero change ** sur le projet COM. Quoi qu'il en soit, je pensais que VS a créé les DLL d'interopérabilité lorsque vous ajoutez une référence COM? – MickyD

Répondre

1

Ceci est un résumé des commentaires ci-dessus. Pourquoi ne pas simplement contourner les références tlb et simplement ajouter une référence COM directe?

Ajout d'une référence COM de .NET à votre bibliothèque COM nécessite un changement de zéro sur le projet COM. VS crée les dll Interop lorsque vous ajoutez une référence COM de votre projet .NET