是否存在任何实现luac功能的.NET DLL?

有人知道是否存在封装了Lua 5.1编译器的DLL(最好是.NET的)吗?我正在开发一个.NET项目,其中需要编译Lua脚本,我宁愿使用可发送脚本代码的DLL,而不是将脚本发送到临时文件并运行luac.exe。

编辑:我需要一个.NET库,以这样的方式实现luac,以输出标准的Lua字节码(而不是编译为CLR的Lua库)。编译Lua C源代码不起作用,因为当我尝试在C#项目中引用该DLL时,Visual Studio会抱怨它不是有效的程序集。到目前为止,我的搜索没有发现任何东西。

原文链接 https://stackoverflow.com/questions/251401

点赞
stackoverflow用户10431
stackoverflow用户10431

all the code for luac is distributed with lua... would be trivial to make it a DLL.

所有 luac 的代码都与 Lua 一起分发,使其成为 DLL 将是微不足道的。

2008-10-30 20:00:11
stackoverflow用户6236
stackoverflow用户6236

有一个用于 Lua 和 .Net 集成的 Lua.NET 项目:

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

2008-10-30 21:52:51
stackoverflow用户126042
stackoverflow用户126042

你可以通过以下命令在Lua中模拟luac,该命令来源于[lua-users wiki](http://lua-users.org/wiki/LuaCompilerInLua):

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-21 21:04:52