簡體   English   中英

Lua C:我將如何使用 Lua 源代碼創建一個 Lua 解釋器來執行給定的 Lua 代碼塊?

[英]Lua C: How would I use the Lua source code to create a Lua interpreter that will execute given blocks of Lua code?

我想要一個詳細的解釋。

我將如何使用 Lua 源代碼創建一個 Lua 解釋器來執行給定的 Lua 代碼塊? Lua 代碼塊將作為char發送。

你需要調用lua_load來編譯代碼塊,然后調用lua_call來運行它。 有關如何完成此操作的非常好的示例,請查看此處提供示例:

任何 Lua api 函數的第一個參數總是一個解釋器狀態,它是lua_open()的返回值

該示例實際上使用luaL_loadbuffer包裝對lua_load的調用,以使編譯 ac 字符串更容易一些。 您可以在涵蓋輔助庫的參考手冊的章節中閱讀如何使用它。 這會在 lua 堆棧的頂部留下一個 lua,然后可以使用lua_call調用lua_call ,但該示例使用lua_pcall ,它提供了一些錯誤捕獲。 由於您剛剛編譯的塊不接受任何參數(它是一個塊而不是函數)並且沒有您感興趣的任何返回值,並且您希望完全按照產生的錯誤查看錯誤,所有除了第一個(始終是 lua 解釋器狀態)之外的參數可以為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM