我的 C# 代码中有一个字节数组,我需要将它传递给 LuaInterface 实例。我可以在 Lua 中使用 pack(),将生成的字符串传递给 C# 并将其转换为System.Text.Encoding.UTF8.GetBytes()
,但另一种方式似乎不起作用。
有简单的解决方案吗?我希望我可以避免将字节数组分配给全局值。
编辑:
今天早上我尝试了一些新东西。我尝试使用LuaInterface.GetFunction()
,一切正常,直到它lua_pushstring()
在 LuaDLL.cpp 中命中。此时,C# 字符串通过 . 转换为 char* Marshal::StringToHGlobalAnsi().ToPointer()
。看起来这个函数需要一个空终止的字符串,而我的字符串的第一个字节是 0,所以我在我的 lua 代码中得到一个空字符串。