2

有谁知道封装 lua 5.1 编译器的任何 DLL(最好是 .net)?我正在开发一个 .net 项目,其中一部分需要编译 lua 脚本,我宁愿有一个可以发送脚本代码的 DLL,而不是将脚本发送到临时文件并运行 luac.exe。

编辑:我需要一个 .NET 库,它以输出标准 lua 字节码的方式实现 luac(不是编译到 CLR 的 lua 库)。编译 lua c 源代码不起作用,因为当我在 ac# 项目中包含对 dll 的引用时,Visual Studio 抱怨它不是一个有效的程序集。我的搜索到目前为止还没有找到任何东西。

4

3 回答 3

1

Lua 和 .Net 集成有 Lua.NET 项目:

http://www.lua.inf.puc-rio.br/projects/luanet/

于 2008-10-30T21:52:51.750 回答
1

您可以luac通过从lua-users wiki获取的以下命令在 Lua 中进行模拟:

lua -e 'io.write(string.dump(assert(loadfile())))' <sample.lua >sample.out

因此,如果您打算在 C 中的 API 级别执行此操作(即使我知道您使用的是 .NET),它应该类似于

lua_dostring(L, "string.dump(assert(loadstring([==[YOUR CODE HERE]==])))");
size_t sz;
char *output = lua_tolstring(L, -1, &sz);

然后只需将sz字符保存到您的输出文件中。

我意识到这是一个迟到的答案,但由于这里还没有一个,我想我会尝试一下。

于 2009-09-21T21:04:52.933 回答
1

luac 的所有代码都与 lua 一起分发......将其变成 DLL 将是微不足道的。

于 2008-10-30T20:00:11.133 回答