Je me demande comment appeler une méthode de classe C# à partir du code C++ (Native, not C++ CLI)? Besoin d'une manière simple et éléganteComment appeler C# à partir de C++
Répondre
Transformez votre ensemble C# en un COM visible et utilisez les interfaces COM. C'est la seule façon de faire en sorte que cela fonctionne à côté de l'IPC créé pour autant que je sache. Le problème provient de l'environnement .NET sous lequel l'assembly .NET doit s'exécuter et C++ s'exécute sous son environnement C++ natif. La seule façon de communiquer est soit un mécanisme IPC (sockets, ...), soit COM, car les processus doivent être "découplés".
Voici un tutoriel pour la solution COM:
Sasha Goldshtein est l'homme pour ce genre de choses:
Il y a encore plusieurs façons de le faire: 1. Inverser P/Invoke (doit commencer à partir du délégué .NET passé en tant que rappel, donc c'est seulement bon si l'action commence dans votre code .NET); 2. COM interop (chaque classe .NET peut aussi être un objet COM, avec ou sans interfaces explicites); 3. Classes wrapper C++/CLI.
Voir http://blogs.microsoft.co.il/blogs/sasha/archive/2008/02/16/net-to-c-bridge.aspx
Voir aussi:
http://www.gregcons.com/KateBlog/CallingManagedCodeFromNativeCode.aspx
Vous pouvez intégrer tout ensemble CLR (C#, VB.NET, F #, ...) dans un programme C++ natif en utilisant ce qu'on appelle "CLR Hosting ". C'est ainsi que les programmes natifs (tels que SQL Server) prennent en charge les extensions de code .NET. Par exemple. SQL CLR dans SQL Server.
Vous chargez le CLR dans un processus natif à l'aide CorBindToRuntimeEx()
pour .NET 2.0 et .NET 4. CLRCreateInstance()
dans
détails peuvent être trouvés sur MSDN, ou le livre de Jeff Richter CLR via C#.
+1 cool! Je ne savais pas à ce sujet! – gideon
La méthode la plus simple consiste à utiliser C++/CLI. Si vous ne pouvez pas l'utiliser dans votre code, écrivez un wrapper dll et appelez cette DLL.
la direction est erronée – user496949
- 1. Comment appeler javaScript à partir d'Objective C?
- 2. Comment appeler C# .dll à partir d'une application C++/CLI?
- 3. Comment appeler une bibliothèque C à partir de .NET
- 4. Comment appeler api PHP à partir de C#? (Exemple simple)
- 5. Comment appeler les fonctions C à partir de python?
- 6. Comment appeler une méthode IronPython 2 à partir de C#
- 7. Comment appeler cette fonction dll native à partir de C#?
- 8. Comment appeler grails webservice à partir de C#
- 9. Comment appeler le code Java à partir de C#?
- 10. Comment appeler une procédure stockée DB2 à partir de C#?
- 11. Comment appeler un objet DCOM à partir de C#?
- 12. Comment appeler une application C# windows à partir d'un contrôle?
- 13. Comment puis-je appeler une DLL C++ à partir VS2008
- 14. comment appeler votre yacc à partir d'un fichier c?
- 15. Comment appeler une fonction C# à partir d'un bouton?
- 16. Comment appeler une fonction JavaScript à partir du code C#
- 17. Possible de créer/appeler C# à partir d'un SPROC?
- 18. Comment puis-je appeler une fonction C++ à partir de C#?
- 19. Comment puis-je appeler un assembly C++/CLI en mode mixte à partir de C#?
- 20. Comment appeler Java C++
- 21. parler à C à partir de C#
- 22. C++ Appeler un EXE à partir d'une méthode
- 23. comment appeler une DLL C++ à partir du projet d'application C# windows
- 24. Comment appeler une fonction C++ qui prend une référence à partir du code C#
- 25. C à Fortran appeler problème
- 26. Appeler javascript à partir du code objectif-c
- 27. Pouvez-vous appeler des fonctions C++ à partir d'Ada?
- 28. Appeler code C# à partir du code VB.net
- 29. Comment appeler GetGUIThreadInfo dans C#
- 30. Méthode statique C# à partir de l'objet
Aussi cool que cela puisse être la pensée blesse –
duplication possible de [Appeler le code C# de C++] (http://stackoverflow.com/questions/778590/calling-c-sharp-code-from-c) – cdiggins