c# - Cómo usar LuaInterface en Mono/Linux
.net (3)
Las versiones anteriores de LuaInterface usan una envoltura pura de P / Invoke. Podrías usar esto.
También hay algunos intentos de alternativas, incluida la mía. http://github.com/jsimmons/LuaSharp
Cuando trato de usar LuaInterface en Mono en Linux (usando Mono 2.0 en Ubuntu 9.04) obtengo la siguiente excepción:
** (App.exe:8599): WARNING **: Method '':.DoDllLanguageSupportValidation ()'' in assembly ''/home/ulrich/test/Debug/lua51.dll'' contains native code that cannot be executed by Mono on this platform. The assembly was probably created using C++/CLI.
Según este sitio web, LuaInterface se puede usar con Mono. MoMA dice eso también.
¿Es posible recompilar lua51.dll
para que sea compatible con Mono?
LuaInterface parece ser C # puro, pero usa una versión en modo mixto C ++ / CLI-ified de la versión de Windows de la biblioteca Lua nativa, que mezcla el código .NEt y el código nativo de 32 bits de Windows. No hay compilador C ++ / CLI para plataformas que no sean Windows, por lo que no puede portar / recompilar el código C ++ / CLI, aunque debería funcionar en Mono en Win32 (o quizás Wine).
La única manera realmente viable de hacer que esto funcione en Mono sería hacer que use P / Invocaciones en lugar de C ++ / CLI. A continuación, puede usar un dllmap para que cuando Mono intente resolver las llamadas de P / Invoke a lua51.dll, se lo redireccione al equivalente de Linux, liblua.so.5.1.
Para todos ustedes que están leyendo esto ahora: ¡Usen KopiLuaInterface ! Ver mi publicación aquí: https://.com/a/21386450/1070906