c# .net mono lua luainterface

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