visual tutorial studio sharp que programar programación programacion platzi mejor lenguaje cuál curso cual como c# c++-cli interop

c# - tutorial - que es mejor co c++



Llamando al código C#de C++ (6)

Necesito poder invocar funciones C # arbitrarias desde C ++. http://www.infoq.com/articles/in-process-java-net-integration sugiere el uso de ICLRRuntimeHost :: ExecuteInDefaultAppDomain () pero esto solo me permite invocar métodos con este formato: int method(string arg)

¿Cuál es la mejor forma de invocar funciones arbitrarias de C #?


Como enfoque alternativo, puede usar Lua para crear una instancia de los objetos CLR, ejecutar y devolver los resultados.


Compila tu código C ++ con el indicador / clr . Con eso, puede llamar a cualquier código .NET con relativa facilidad.

Por ejemplo:

#include <tchar.h> #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { System::DateTime now = System::DateTime::Now; printf("%d:%d:%d/n", now.Hour, now.Minute, now.Second); return 0; }

¿Esto cuenta como "C ++"? Bueno, obviamente no es estándar C ++ ...


Hay varias formas en que una aplicación C ++ puede invocar funciones en una DLL C #.

  1. Usando C ++ / CLI como un DLL intermedio
  2. Invertir P / Invocar
  3. Usando COM
  4. Uso de CLR Hosting ( ICLRRuntimeHost::ExecuteInDefaultAppDomain() )
  5. Comunicación entre procesos (IPC)

La forma más fácil es usar interoperabilidad COM.



Si no le importa si su programa C ++ (o una parte de él) se compila con / clr, puede usar C ++ / CLI para simplemente llamar a cualquier código .NET (siempre que agregue una referencia). Pruebe este artículo .

EDITAR: Aquí hay un buen tutorial

La otra ruta es hacer que su código C # se exponga como COM.