5

当我尝试在 Linux 上的 Mono 上使用LuaInterface(在 Ubuntu 9.04 上使用 Mono 2.0)时,出现以下异常:

** (App.exe:8599): 警告 **: 程序集中的方法 ':.DoDllLanguageSupportValidation ()'
'/home/ulrich/test/Debug/lua51.dll' 包含不能
由 Mono 在此平台上执行。
该程序集可能是使用 C++/CLI 创建的。

根据这个网站LuaInterface可以与 Mono 一起使用。MoMA也是这么说的。

是否可以重新编译lua51.dll以使其与 Mono 兼容?

4

3 回答 3

6

LuaInterface 看起来是纯 C#,但它使用本地 Lua 库的 Windows 版本的混合模式C++/CLI 化版本,混合了 .NEt 代码和本地 32 位 Windows 代码。没有适用于 Windows 以外的平台的 C++/CLI 编译器,因此您不能移植/重新编译 C++/CLI 代码,尽管它应该可以在 Win32 上的 Mono 上运行(或者可能是 Wine)。

让它在 Mono 上工作的唯一真正可行的方法是让它使用 P/Invokes 而不是 C++/CLI。然后,您可以使用dllmap,这样当 Mono 尝试解析对 lua51.dll 的 P/Invoke 调用时,它会被重定向到 Linux 等效项 liblua.so.5.1。

于 2009-10-07T21:44:42.193 回答
6

旧版本的 LuaInterface 使用纯 P/Invoke 包装器。你可以用这个。

还有一些替代品的尝试,包括我自己的。http://github.com/jsimmons/LuaSharp

于 2009-10-29T05:30:16.797 回答
0

对于所有正在阅读本文的人:使用KopiLuaInterface!在这里查看我的帖子:https ://stackoverflow.com/a/21386450/1070906

于 2014-01-27T16:46:20.790 回答