unity plugin library debug c# .net plugins interop native-code

c# - plugin - ¿Exportar una función C nativa desde una DLL.net?



unity plugin dll (4)

Esta pregunta ya tiene una respuesta aquí:

Tengo un ensamblado .net escrito en C #, y estoy buscando exportar una función C nativa desde el ensamblado.

Tengo una aplicación que realizará una ''LoadLibrary ()'' en cualquier DLL que se encuentre en una carpeta ''plugin''. Después de cargar la DLL, la aplicación realiza una ''GetProcAddress'' buscando una función llamada ''Registrarse''. La aplicación espera que esta función siga la convención de llamadas de C.

¿Cómo puedo exportar una función llamada ''Registrar'' desde mi ensamblado .net, así puedo conectarme exitosamente con el sistema de complementos para esta aplicación?

Gracias, Andrew



Escriba una biblioteca .Net en Managed C ++ y allí puede exportar un método / función "Native".


Lamentablemente, Microsoft no es compatible con esta característica, y usted tiene que cambiar el msil después de la construcción para exponer esos métodos. Es posible ya que un tipo ha mostrado una solución razonable en el proyecto de código o aquí , pero requiere un paso posterior a la compilación y usted está solo después de eso. No sé si este truco funcionará en .NET 4.0 o posterior. Esperamos que Microsoft nos escuche y soporte esta característica simple en C # ya que la compatibilidad con CLR ya está allí.


Lo que quiere es una Invertir P / Invocar . En realidad, no puede insertar una función C en un dll C #, si se refiere a una función realmente implementada en C, pero al seguir los tutoriales proporcionados en la página enlazada puede crear una exportación DLL que pueda invocarse mediante código C / C ++ no administrado. .