如何將字節數組作爲參數傳遞給來自C++代碼的lua腳本方法? 只允許int,float或string數據類型嗎? 另外我怎樣才能從lua腳本方法檢索字節數組? 我會傳遞一個原始字節數組到腳本。它會解析並使用它。 Thanx。從C++將字節數組傳遞給lua腳本方法
3
A
回答
2
Int和float值將被轉換爲Lua的數字類型(默認爲double
)。
如果腳本本身只需要保持一個指向函數之間傳遞,C數據的斑點通常被推作爲光用戶數據:
lua_pushlightuserdata(L, bufptr);
當通過字節到Lua的數組,字符串通常使用(任意數據的字符串可以使用lua_pushlstring
)創建:
lua_pushlstring (L, bufptr, buflen);
這將創建在Lua一個不可變的字符串,它只能通過創建新的字符串進行修改。
如果你需要在Lua中使用可變字節緩衝區(不推薦 - 低級字節操作是C設計的,而Lua不是),最好的辦法是用方法爲緩衝區創建一個用戶數據類型爲用例量身定製(個人職位爲數字,範圍爲字符串或數字表格)。
5
取決於你想要做什麼。 Lua字符串是不可變的字節數組,所以如果它們很小,那麼最好將字節數組轉換成一個字符串,並將其傳遞給lua_pushlstring
,並將其作爲參數傳入 - 是的,支持嵌入式\ 0並且工作正常。但是因爲它們是不可變的,所以每當你想修改它時,Lua最終都會複製這個字符串,所以它可能不適合你的需求。
其他選項是:你的C++字節數組和一個Lua陣列之間
複製數據來回(即數字表)。這在內存上會相當昂貴,但可能是最簡單的方法。
將你的C++字節數組封裝在lightuserdata中,並提供Lua綁定讓你直接訪問它。這是最高效的,但是代碼非常多。
相關問題
- 1. 從C傳遞字節數組到Lua
- 2. 將Lua腳本從C++傳遞到Lua
- 3. 將lua表格從C++傳遞給.Lua腳本
- 4. 將字節數組傳遞給函數
- 5. 將Perl數組傳遞給bash腳本
- 6. 將數組傳遞給php腳本
- 7. 將Lua函數傳遞給C++
- 8. 將對象傳遞給來自C#的Lua腳本#
- 9. 無法將數組傳遞給方法
- 10. Redis Lua腳本 - 如何將數組作爲參數傳遞給nodejs中的Lua腳本?
- 11. 將參數從節點傳遞給CasperJS腳本使用ExecFile
- 12. 將C++字符數組傳遞給Fortran
- 13. 將文件參數傳遞給Lua中的腳本
- 14. 將C#中的數組參數傳遞給C++/CLI方法
- 15. 將數組傳遞給主要方法
- 16. 如何將數組傳遞給方法?
- 17. 將數組傳遞給方法。
- 18. 如何將數組傳遞給方法?
- 19. 將數組傳遞給方法
- 20. 將數組傳遞給方法
- 21. 將空參數傳遞給C#方法
- 22. Maya MEL腳本將字符串數組參數傳遞給evalEcho
- 23. 使用VBA將數組傳遞給網頁中的腳本函數以及從腳本函數傳遞數組
- 24. 將C#3D數組作爲一維字節數組傳遞給C++庫
- 25. 將參數從方法傳遞給OnClickListener
- 26. 將參數從AsyncTask傳遞給方法
- 27. 將數組從jsp傳遞給java腳本
- 28. C#將雙數組傳遞給構造函數重載方法
- 29. Android:將一些只讀字節傳遞給本地C++的最有效方法
- 30. 從C#將參數傳遞給PowerShell腳本#