gpt4 book ai didi

c# - 尝试 "fix"LuaInterface 时出现 DllNotFoundException,但为什么呢?

转载 作者:行者123 更新时间:2023-11-30 15:12:11 26 4
gpt4 key购买 nike

因为我的游戏,我真的很想用 Mono-usable,似乎不能在 Linux 下运行,因为 LuaInterface 是个 SCSS (参见 the relevant SO thread 了解更多信息),我决定这样做那里有什么建议。我编写了自己的 Lua511.LuaDLL 类来反射(reflect) LuaInterface 使用的类,将每个公共(public)函数替换为来自 lua51 的相应 DllImport:

//For example, like this:
[DllImport("lua51")]
public static extern IntPtr luaL_newstate();

使用经过编辑的 LuaInterface.dll(现在拥有自己的 Lua511.LuaDLL)我游戏的启动文件夹中的纯原生 Win32 lua51.dll,当 LuaInterface 尝试初始化时,我以某种方式得到 DllNotFoundException :

public Lua()
{
luaState = LuaDLL.luaL_newstate(); //right there, right then.
...

当然,有了 DLL,它不应该那样做,对吧?奇怪的是,放回困惑的 .Net 版本的 lua51.dll 反而会给出 EntryPointNotFoundException。令人难以置信。

这是怎么回事?

相关源码:Lua511.cs ,将其放入 LuaInterface 项目中,然后删除引用以便将其替换。

编辑:去他的,我要寻找替代方案。或者自己动手。或者干脆不再关心 Linux 兼容性。

最佳答案

您引用了 my question .我采取了另一种方式来解决问题,并开始开发新的 Lua .NET 接口(interface)。我称之为 Lua4Net。

您可以找到 sources on Google hosting .和 here the unit tests .

目前实现的功能:执行带有异常处理的代码并提供返回值;使用参数处理注册全局函数。

接下来的功能:获取/设置全局变量;调试支持,...

您可以找到使用过的 native windows DLL here (它是来自 here 的重命名的 VC++ 9.0 DLL)。

并且:今天我运行了我的第一个 Linux/Mono 测试,我所有的单元测试都成功了!!!

关于c# - 尝试 "fix"LuaInterface 时出现 DllNotFoundException,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1584992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com