我有一個C++程序創建一個lua_State並運行自定義的Lua腳本。如果我想要預先加載lua_State cjson而不是在Lua代碼中調用「require」,我可以知道它是否可行,我該怎麼做?在嵌入式Lua中使用cjson C++
3
A
回答
2
是的,這可能再次運行cjson文件。對此使用luaL_requiref
。使用this或this作爲參數。您需要將cjson代碼鏈接到您的可執行文件,編譯器可能會讚賞luaopen_*
函數的函數聲明。如果你使用Lua 5.1(目前還沒有luaL_requiref
),你可以使用或從Compat-5.3
盜取。
1
如果您不想在腳本中調用require,您可以通過C++調用require並在返回值之外創建一個全局變量。
例如,在C++做:
if (luaL_dostring(L, "cjson = require(\"cjson\")")) // run code
std::cout << luaL_checkstring (L, -1) << std::endl; // print error
之後,你可以使用你的腳本一樣cjson.new()
cjson
沒有任何要求或者這樣的電話,因爲它存在一個全局變量。
由於需要使用由C++然後調用需要在Lua以後不會不像使用dofile處理或類似
相關問題
- 1. MACOSX,C和嵌入式LUA
- 2. 在C++中嵌入Lua
- 3. Lua cjson測試null
- 4. 將Lua嵌入到C++中
- 5. 使用Xcode嵌入Lua
- 6. 調試嵌入式Lua
- 7. 在C#中嵌入了一個Lua交互式提示窗口#
- 8. 在C編譯嵌入的lua
- 9. 嵌入式SQL使用C
- 10. 嵌入式Lua C++:我如何從C++端加載多個lua模塊
- 11. 嵌入式Lua的設置超時
- 12. 重定向/嵌入式的Lua
- 13. 在C++中使用Lua
- 14. 嵌入:單聲道VS LUA
- 15. C++未解析的外部符號嵌入式Lua
- 16. 有使用ctypes在Python中嵌入Lua的庫嗎?
- 17. 如何通過SWIG在C++中嵌入lua
- 18. powershell嵌入式C#使用ObservableCollection
- 19. 創建嵌入式SWF和使用C#
- 20. 在嵌入式C#代碼
- 21. Lua中共享使用C
- 22. 嵌入的Lua在C++:訪問C++通過Lua中,回用C + +中創建(或返回結果返回從Lua到C++)
- 23. 在Webresource.axd中使用嵌入式WebResources
- 24. 在嵌入式LinearLayout中使用的onClick
- 25. 在Symfony2中使用嵌入式窗體
- 26. 在嵌入式Tomcat中使用Guice?
- 27. Python嵌入式C++
- 28. 在嵌入式C代碼中使用typedef結構體
- 29. 使用C和嵌入式SQL在Oracle中選擇CLOB
- 30. 如何在C#中使用Firebird創建嵌入式數據庫#
謝謝你的回答!但是你提到的兩個函數都是在.c文件中定義的,而不是在頭文件中定義的,那麼這是否意味着我必須修改它們的代碼或者在某個頭文件中公開該函數? – keelar
您可以創建一個頭文件幷包含它,或者只需在自己的源代碼的開頭放置一個聲明'int luaopen_cjson(lua_State *);'。 – siffiejoe