2009-03-20 9 views
4

Je souhaite ajouter une référence de DLL VC++ dans mon projet C# Visual Studio. Mais quand j'essaie de l'ajouter, je vois, "Ce n'est pas un assemblage ou un composant COM valide".Comment puis-je ajouter une DLL VC++ comme référence dans mon projet C# Visual Studio?

Veuillez suggérer comment je peux utiliser la DLL VC++ comme référence dans un projet C#.

+0

On dirait un double de http://stackoverflow.com/questions/315051/using-a-class-defined-in-ac-dll-in-c-code – sharptooth

Répondre

1

Il y a deux options pour l'utilisation d'un DLL C++ de C#: soit COM Interop, ou P /Invoquer. COM Interop implique la création d'un objet COM dans votre DLL C++, puis en l'ajoutant en tant que référence. Vous pouvez utiliser l'objet COM comme un objet C# (pour l'essentiel) à ce stade. P/Invoke vous permet d'appeler des fonctions exportées à partir de C# (pensez à appeler des fonctions API Win32 standard à partir de C#). Ceci est probablement plus facile à mettre en place, car tout ce que vous avez à faire est d'exporter une fonction, mais cela pourrait vous obliger à refactoriser votre code dans la DLL C++, car ce n'est pas très pratique.

0

Vous ne pouvez utiliser les composants C++ en C# que lorsqu'ils ont été préparés, par exemple en les écrivant en C++/CLI ou en les écrivant en tant que serveur COM.

Si votre composant est un C plaine ++ dll, vous aurez besoin d'écrire un code d'emballage, le mieux est probablement C++/Cli

Questions connexes