LuaInterfaceインスタンスに渡す必要のあるバイト配列がC#コードにあります。Luaでpack()を使用し、結果の文字列をC#に渡して、で変換することはできますSystem.Text.Encoding.UTF8.GetBytes()
が、逆の方法ではうまくいかないようです。
簡単な解決策はありますか?バイト配列をグローバル値に割り当てないようにしたいと思っています。
編集:
私は今朝いくつかの新しいことを試みました。を使用してみましたが、LuaDLL.cppLuaInterface.GetFunction()
でヒットするまですべてが機能します。lua_pushstring()
この時点で、C#文字列は。を介してchar*に変換されMarshal::StringToHGlobalAnsi().ToPointer()
ます。この関数はnullで終了する文字列を想定しているようで、文字列の最初のバイトは0なので、luaコードで空の文字列を取得します。