问题标签 [luainterface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何在 Mono/Linux 上使用 LuaInterface
当我尝试在 Linux 上的 Mono 上使用LuaInterface(在 Ubuntu 9.04 上使用 Mono 2.0)时,出现以下异常:
根据这个网站LuaInterface可以与 Mono 一起使用。MoMA也是这么说的。
是否可以重新编译lua51.dll
以使其与 Mono 兼容?
c# - 尝试“修复” LuaInterface 时出现 DllNotFoundException,但为什么呢?
由于我的游戏,我真的很想成为 Mono 可用的,但似乎无法在 Linux 下运行,因为 LuaInterface 是个混蛋(有关更多信息,请参阅相关的 SO 线程),我决定按照建议做那里。我编写了自己的 Lua511.LuaDLL 类来反映 LuaInterface 使用的类,用来自 lua51 的相应 DllImport 替换每个公共函数:
使用编辑过的 LuaInterface.dll(现在托管自己的 Lua511.LuaDLL)和游戏启动文件夹中的纯原生 Win32 lua51.dll,当 LuaInterface 尝试初始化时,我以某种方式得到了 DllNotFoundException:
当然,有了 DLL,它不应该那样做,对吧?奇怪的是,放回混乱的 .Net 版本的 lua51.dll 反而会给出一个 EntryPointNotFoundException。头脑一片混乱。
那是怎么回事?
相关源代码:Lua511.cs,将其放在 LuaInterface 项目中,然后删除引用以便将其替换。
编辑:搞砸了,我要寻找替代品。或滚动我自己的。或者干脆停止关心 Linux 兼容性。
c# - Lua接口和64位
好的,我目前正在使用的游戏引擎中使用 LuaScript v5.1。以及随之而来的方便的 LuaInterface。我已经在运行一系列操作系统的一系列系统上对其进行了测试。LuaInterface 似乎在 64 位操作系统上失败。谁能给我指出一个 64 位编译的 LuaInterface.dll,或者有任何可以使用的 LuaInterface 替代品,因为 LuaInterface 非常有用,我认为我自己无法使用 lua51 编写更广泛的接口。(可悲的是我不是那么好)
任何帮助或链接将不胜感激。非常感谢你们!
c# - How to call Lua functions from .NET
I use the LuaInterface library to run the lua in .net and it works fine. I could access the CLR via lua. But how to call Lua function from C#?
c# - 读取嵌套的 Lua 表,其中键是 System.Double
使用 C# 和 LuaInterface,我试图读取一个嵌套表,但是当我尝试打开包含该表的键时得到一个空 LuaTable。
.lua 文件:
通过使用以下命令打开该表,我可以成功地 foreach 库存下的条目:
我不能做的是打开一个库存项目并以相同的方式枚举其条目。这是因为密钥是System.Double
类型吗?这失败了:
有一个例外,因为 tbl 为空。
实际上,一旦我枚举了键(库存项目),我就想深入到嵌套表中并使用这些内容。如您所见,我无法以我的方式获得对嵌套表的引用。
c# - LuaInterface - 如何注册重载方法?
当我遇到一点问题时,我正在尝试将 Lua 集成到我的 C# 应用程序中。我希望有更多专业知识的人可以帮助我指出正确的方向。
假设我有以下 C# 方法:
我想将它注册到我的 Lua 脚本环境中,这样我就可以执行以下操作:
我尝试了 RegisterFunction("MyMethod", this, this.GetType().GetMethod("MyMethod")) 但它合理地抱怨不明确的匹配。有任何想法吗?
lua - LuaInterface:向脚本范围添加一个表
问题:如何使用 C# 对象(最好是匿名类型)将 C# 中的表插入“LuaInterface”脚本范围?
c# - 将 C# 字节数组传递给 LuaInterface
我的 C# 代码中有一个字节数组,我需要将它传递给 LuaInterface 实例。我可以在 Lua 中使用 pack(),将生成的字符串传递给 C# 并将其转换为System.Text.Encoding.UTF8.GetBytes()
,但另一种方式似乎不起作用。
有简单的解决方案吗?我希望我可以避免将字节数组分配给全局值。
编辑:
今天早上我尝试了一些新东西。我尝试使用LuaInterface.GetFunction()
,一切正常,直到它lua_pushstring()
在 LuaDLL.cpp 中命中。此时,C# 字符串通过 . 转换为 char* Marshal::StringToHGlobalAnsi().ToPointer()
。看起来这个函数需要一个空终止的字符串,而我的字符串的第一个字节是 0,所以我在我的 lua 代码中得到一个空字符串。
c# - 在 .net4 中加载 LuaInterface
我有一个正在使用的 C# 应用程序,我想使用出色的LuaInterface。但是,当我运行应用程序时,当我尝试使用 LuaInterface 执行某些操作时,会出现此异常:
混合模式程序集是针对运行时版本“v2.0.50727”构建的,如果没有额外的配置信息,则无法在 4.0 运行时中加载。
我可以提供哪些额外的配置信息来正确加载?
c# - 在 C# 应用程序中嵌入 LuaInterface 性能很慢?
我已将 LuaInterface 项目嵌入到使用 .NET Framework 4.0 用 C# 编写的应用程序中。编译 LuaInterface 和 Lua 5.1 后,我在我的应用程序中引用了它们并创建了一个 Lua VM 并公开了一些 .NET 类。Lua VM 调用次数不多时,性能完全不受影响;但是当它开始调用大量 .NET 函数时,整个应用程序变得缓慢且无响应。
作为对此的回应,我创建了一个额外的线程来运行 Lua VM。但由于某种原因,当 Lua 执行函数调用时,更新 GUI 的线程不会更新,从而导致 GUI 卡顿。四处移动窗口时,您可以清楚地看到它一会没有响应,然后移动,没有响应等。
我该如何解决这个问题?我的印象是给 Lua 自己的线程,不同的线程不应该受到影响!这在某种程度上纯粹与我自己的代码有关吗?LuaInterface 调用 .NET 函数(性能方面)是否存在一些严重问题?我还能用什么?