首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DllNotFoundException试图“修复”LuaInterface,但为什么呢?

DllNotFoundException试图“修复”LuaInterface,但为什么呢?
EN

Stack Overflow用户
提问于 2009-10-18 14:09:49
回答 2查看 1.2K关注 0票数 3

因为我的游戏--我真的很想使用Mono-可用--似乎没有在Linux下运行,因为LuaInterface是个混蛋(关于这个问题的更多信息,请看相关的SO线程 ),所以我决定做这里建议的事情。我编写了自己的Lua511.LuaDLL类来反映LuaInterface使用的类,将每个公共函数替换为各自来自lua51的DllImport:

代码语言:javascript
复制
//For example, like this:
[DllImport("lua51")]
public static extern IntPtr luaL_newstate();

使用已编辑的LuaInterface.dll (它现在承载了自己的Lua511.LuaDLL)和游戏启动文件夹中的纯本机Win32 lua51.dll,当LuaInterface尝试初始化时,可以得到一个DllNotFoundException:

代码语言:javascript
复制
public Lua()
{
   luaState = LuaDLL.luaL_newstate(); //right there, right then.
   ...

当然,有了DLL它就不应该这么做了,对吧?奇怪的是,把糟糕的.Net版本lua51.dll放回去会给出一个EntryPointNotFoundException。精神错乱。

这是怎么回事?

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

编辑:去他的,我去找其他的。或者我自己的。或者不再关心Linux的兼容性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-18 19:45:25

你提到了我的问题。我采取了另一种方法来解决这个问题,并开始开发一个新的Lua .NET接口。我叫它Lua4Net。

你可以找到关于Google主机的消息来源。和在这里,单元测试

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

以下特性:获取/设置全局变量;调试支持,.

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

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

票数 4
EN

Stack Overflow用户

发布于 2009-10-18 14:19:34

默认情况下,AFAIK为Linux下的本机库使用.so扩展

尝试将lua51.dll重命名为lua51.so或在DllImport属性中更改dllname。或者用dllmap。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1584992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档