В моем коде C # есть байтовый массив, который мне нужно передать в экземпляр LuaInterface.Я могу использовать pack () в Lua, передать полученную строку в C # и преобразовать ее в System.Text.Encoding.UTF8.GetBytes()
, но другой путь, похоже, не работает.
Есть ли простое решение?Я надеюсь, что смогу избежать присвоения байтового массива глобальному значению.
Редактировать :
Сегодня утром я попробовал несколько новых вещей.Я попытался использовать LuaInterface.GetFunction()
, и все работает, пока не достигнет lua_pushstring()
в LuaDLL.cpp.В этот момент строка C # преобразуется в символ * через Marshal::StringToHGlobalAnsi().ToPointer()
.Похоже, эта функция ожидает строку с нулевым символом в конце, и первый байт моей строки равен 0, поэтому я получаю пустую строку в своем коде lua.