Une DLL native peut-elle appeler une DLL .NET?Une DLL peut-elle appeler une DLL .NET?
Répondre
Non, vous devez utiliser C++ géré
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.
Parce que je ne suis pas familier avec COM et ferai tout ce que je peux pour éviter de l'apprendre :) –
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 –
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.
Remerciements vous pour l'article. C'est utile. –
- 1. Comment appeler une DLL Delphi de VB6
- 2. ASP.NET licence une DLL
- 3. Créer une DLL: Comment utiliser une DLL pour créer une nouvelle DLL?
- 4. Quelles sont mes options pour DLL C++ pour appeler une DLL C#?
- 5. en utilisant une DLL dans une application .NET
- 6. Singleton dans une DLL?
- 7. Compiler une DLL avec gcc
- 8. Comment appeler DLL à l'intérieur de Java?
- 9. Maintenir la version correcte pour une DLL dll référencée dans un projet .NET
- 10. problèmes avec une grande DLL?
- 11. Contrôle hébergé .net utilisateur IE utilisant une DLL non managée
- 12. Comment créer une DLL multi-plate-forme dans .net
- 13. Qu'est-ce qui casse une interface binaire (dll) .net
- 14. Lire une version non .NET DLL de C#?
- 15. Découvrez quel fichier exécutable fait référence à une DLL .NET?
- 16. .NET 3.5 ActiveX dll InteropServices.COMException
- 17. Comment appeler une méthode dans une DLL ActiveX personnalisée à l'aide du script java/vb
- 18. Déploiement de plusieurs programmes référençant une DLL
- 19. Écriture d'un remplacement pour une DLL C?
- 20. Meilleure pratique pour la création d'une DLL .net dll vs vb6 pour l'application de bureau VB6?
- 21. Création d'une DLL qui lie à une autre DLL (MSVS2008 C++)
- 22. Générer par programme une DLL C Win32
- 23. Interrompre le programme Python dans une DLL
- 24. Comment renvoyer une instance d'une DLL?
- 25. Comment désactiver une sortie de console .DLL?
- 26. Activer une DLL injectée dans Windows
- 27. Télécharger une position pour MAPI33.dll?
- 28. Comment supprimer une DLL auto-installée?
- 29. Comment trouver une DLL avec un CLSID?
- 30. Utilisation de NHibernate dans une DLL
Ou un wrapper écrit en C++ géré. –
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