He revisado ECMA 335 y solo he encontrado una referencia a la palabra clave .export
que parece prometedora pero que tiene muy poca documentación. He encontrado preguntas similares sobre StackOverflow con respecto a hacer esto en C#. Sin embargo, nada de eso me ha llevado a ningún lado útil hasta ahora.¿Cómo se exporta un método en una DLL CIL para que un programa nativo pueda llamarlo?
La línea inferior es: Tengo una DLL CIL y quiero invocar algunos de sus métodos estáticos desde una aplicación C++ nativa.
Como muestra la solución de Zor, es posible sin la locura de COM. –
Corrígeme si me equivoco, pero ilasm aún genera un archivo PE MSIL, aún no apto para llamadas desde una aplicación nativa. Aún necesita una VM .net para ejecutar el código. – antiduh
El código administrado no se puede ejecutar mágicamente sin una máquina virtual, incluso si se llama a través de COM. Mi solución simplemente exporta métodos administrados de modo que, cuando se invocan desde un código nativo, la VM .NET ingrese y ejecute el código administrado, y luego regrese al código nativo. –