我正在寻找一种将Lua嵌入到我的跨平台嵌入应用程序中的方法。问题是,我还没有在这个平台上找到任何完整、稳定、有效的Lua实现。我已经尝试了以下内容(以下是存储库及其问题的列表):
- LuaInterface-要求我为每个平台编译一个dll,不稳定,因为v2使用Windows
- KopiLua-错误,甚至他们自己的样本也不起作用
- AluminiumLua-依赖于DLL,因此不是实现
- NLua-基于KopiLua并继承所有问题
- UniLua。。。这是为了团结
此外,当我做一个简单的测试时,这些实现中的大多数都会失败:
for(i=0;i<100000;i)
Lua.CallSomeFunctionFromLua()
它不时地调用一个错误,尤其是在KopiLua和LuaInterface上。
问题是:在没有任何平台依赖的情况下,是否有任何完整、稳定的Lua严格在C#中实现?
如果你找不到好的lua实现的纯C#库,试着给luabind一个机会。正如文档中所说,它是可移植的。您可以在luabind和您的框架之间创建C++/CLI接口,就像这里所说的那样。这是一个非常危险的想法,但您可以对发生的事情进行深度控制。由于luabind是C Lua的C++包装器,所以在C#上实现接口不会太难。