¿Por qué DllImport no funciona con "__Internal"?
Tengo biblioteca compartida de C ++ que método de exportaciónint MyFunc()
Tanto para Linux como para Windows.
Desde C # llamo alMyFunc
Con la siguiente firma.
[DllImport(@"__Internal", CharSet = CharSet.Ansi, EntryPoint = "MyFunc")]
static extern unsafe int MyFunc();
// Later I'm using :
MyFunc();
Este código funciona bien en Windows, pero dentro de Linux, esto produce una excepción.EntryPointNotFound
.
He compilado mi biblioteca de C ++ con la opción dinámica y puedo ver que MyFunc se exporta como un indicador D con nm, pero esto tampoco me ayudó.
Sin ningún cambio si simplemente cambio.DllImport(@"__Internal"
aDllImport(@"mys.so"
Entonces funcionará bien en Linux pero luego tengo que usarDllImport(@"mys.dll"
En las ventanas que este código rompe la característica compatible cruzada.
Así que quiero evitar esto.
No veo ningun error que por eso__Internal
no está funcionando en Linux.
Tenga en cuenta que estoy usando mono.
¿Alguna idea de por qué esto no está funcionando en Linux?