Comment appeler du code .NET géré à partir de mon code C ++ non géré sous Windows et inversement?

StackOverflow https://stackoverflow.com/questions/1046499

Question

J'ai une application purement C ++ développée avec VC 6.0. Je voudrais que cette application utilise une bibliothèque développée en C #. Comment appeler les méthodes de la bibliothèque C # à partir de mon exécutable natif? Je ne veux pas convertir mon application native C ++ non gérée en code managé. De même, comment faire l'inverse? Est-ce que PInvoke est la seule option? J'apprécierais toutes les références ou indications pour les mêmes.

Était-ce utile?

La solution

Pour appeler du code géré à partir de C ++ non géré, utilisez ClrCreateManagedInstance . ou exportez vos types dans votre ensemble géré en tant que COM visible et utilisez COM. Pour appeler du code non géré à partir de managé, utilisez COM ou P / Invoke.

Autres conseils

La ligne principale de Microsoft est l’utilisation de COM interop. Il existe cependant une autre option, parfois appelée & "Reverse P / Invoke &"; Il existe un article de blog intéressant ici et quelques autres ici

De plus, si vous avez Delphi.NET (maintenant obsolète), ce langage vous permet d’exporter des méthodes statiques comme toute fonction dll, puis vous pouvez appeler l’assemblage Delphi.NET comme un dll native normale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top