¿Cómo llamo al código .NET administrado desde mi código C ++ no administrado en Windows y viceversa?

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

Pregunta

Tengo una aplicación C ++ pura desarrollada usando VC 6.0. Me gustaría que esta aplicación haga uso de una biblioteca desarrollada en C #. ¿Cómo llamo a los métodos en la biblioteca de C # desde mi ejecutable nativo? No quiero convertir mi aplicación nativa de C ++ no administrada en código administrado. Del mismo modo, ¿cómo hago lo contrario? ¿PInvoke es la única opción? Agradecería cualquier referencia o puntero para el mismo.

¿Fue útil?

Solución

Para llamar al código administrado desde C ++ no administrado, use ClrCreateManagedInstance , o exporte sus tipos en su ensamblado administrado como COM visible, y use COM. Para llamar al código no administrado desde administrado, use COM o P / Invoke.

Otros consejos

La línea principal de Microsoft en esto es usar interoperabilidad COM. Sin embargo, existe otra opción, a veces denominada & Quot; Invertir P / Invocar & Quot; hay una publicación de blog interesante aquí y algo más aquí

Además, si tiene Delphi.NET (ahora extinto) este lenguaje le permite exportar métodos estáticos como lo haría con cualquier función dll, entonces puede llamar al ensamblaje Delphi.NET como un Dll nativo normal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top