我在我的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