LuaInterface:如何转储LuaFunction以进行序列化

时间:2013-01-31 11:10:14

标签: c# serialization luainterface

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

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

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

我得到409而不是5作为字符串的长度。因此转储工作正确。这可能是LuaInterface中的一个问题。

那里有人,如何通过LuaInterface实现Lua状态的序列化?

祝你好运, 德克

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

1 个答案:

答案 0 :(得分:0)

解决。

问题是,string.dump返回的二进制块被处理为字符串。所以它被剪切在字符串中的第一个空字节,这是在5个字节之后。更改了DoString的调用,以便它正确处理字节数组。