LuaInterface:如何将LuaFunction转储用于序列化

我试图保存/序列化一个Lua状态。我知道,我必须保存/序列化在_G中找到的所有全局变量,但是不知道如何保存/序列化找到的Lua函数。我尝试使用string.dump,但它只提供带有Lua签名(5个带有LuaQ的字节)的字符串。

函数string.dump有效,因为如果我调用

lua.DoString("print(string.len(string.dump(CountItems)))");

我得到409而不是字符串的长度为5。所以转储是正确的。这可能是LuaInterface中的问题。

有没有人在这里通过LuaInterface实现了Lua状态的序列化?

最好的问候, Dirk

PS:我正在使用VS 2010 C#Express上的KopiLua 5.1.4和LuaInterface 2.0.4。

点赞
用户1829325
用户1829325

问题在于 string.dump 返回的二进制块被处理成了字符串。因此它在字符串中的第一个空字节处被截断,这恰好在 5 个字节后。修改了 DoString 的调用,以便正确地处理字节数组。

2013-12-19 07:33:43