我在我的C#代码中有一个字节数组,我需要传入一个LuaInterface实例。我可以在Lua中使用pack(),将生成的字符串传递给C#,并将其转换为System.Text.Encoding.UTF8.GetBytes()
,但以其他方式似乎不起作用。传递一个C#字节数组到LuaInterface
有没有简单的解决方案?我希望我可以避免将字节数组分配给全局值。
编辑:
今天早上我尝试了一些新的东西。我尝试使用LuaInterface.GetFunction()
,并且一切正常,直到它在LuaDLL.cpp中遇到lua_pushstring()
。此时,C#字符串将通过Marshal::StringToHGlobalAnsi().ToPointer()
转换为char *。它看起来像这个函数期望一个空终止的字符串,我的字符串的第一个字节是0,所以我在我的lua代码中得到一个空字符串。
我最初试过这个,除了UTF8编码。问题在于将数据传递给Lua。我必须通过lua.DoString(“parse(_data_)”)来调用lua函数;字符串格式不喜欢空字符。 – kyork 2010-09-15 22:35:06