2009-08-07 5 views

Répondre

4

Non, vous devez utiliser C++ géré

+2

Ou un wrapper écrit en C++ géré. –

+0

Exactement. Ce que nous faisons est de créer un wrapper fin avec des exports "C" externes standard dans Managed C++, puis d'écrire le vrai code en C#. – ConsultUtah

1

Sans l'aide de COM, vous devez écrire un wrapper C++/CLI. Votre code natif qui inclut le fichier d'en-tête de votre wrapper doit être compilé avec/clr (prise en charge du Common Language Runtime). Par simple curiosité, pourquoi ne pas utiliser COM interop? Découvrez les outils regasm.exe et tlbexp.exe.

+0

Parce que je ne suis pas familier avec COM et ferai tout ce que je peux pour éviter de l'apprendre :) –

+1

COM souffre aussi du méchant problème d'enfer DLL en raison de l'enregistrement global. Il est possible de faire un enregistrement sans COM mais la documentation est confuse et il y a des bugs http://stackoverflow.com/questions/617253/is-anyone-successfully-using-registration-free-com-with-net-components –

1

Vous avez besoin de quelque chose pour que le monde géré et le monde non géré travaillent ensemble. Si vous ne souhaitez pas utiliser COM, vous pouvez créer des classes wrapper dans C++/CLI. Voici un article qui peut vous aider à démarrer: .NET to C++ Bridge.

+0

Remerciements vous pour l'article. C'est utile. –

Questions connexes