2010-11-24 42 views
0

編輯2:Lua C問題

**我想有一個詳細的解釋。我是C語言的NOOB。

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

回答

2

調用Lua需要lua_load調用編譯代碼塊,然後調用lua_call來運行它。有關如何完成的一個很好的例子,請看example provided here:

的第一個參數任何Lua的API函數始終是一個解釋的狀態,這是lua_open()

返回值的例子實際使用luaL_loadbuffer它包裝調用lua_load,使編譯C字符串更容易一點。您可以閱讀參考手冊中涵蓋The Auxiliary Library的章節中的使用方法。這將lua 留在lua堆棧的頂部,然後可以用lua_call來調用,但該示例使用lua_pcall,其提供了一些錯誤捕獲。因爲剛剛編譯的塊沒有任何參數(它是塊而不是函數),並且沒有任何您感興趣的返回值,並且您希望看到與產生的完全一樣的錯誤,所有除第一個之外的參數(它總是lua解釋器狀態)可以是零。

+0

看起來不錯。我會嘗試 – 2010-11-24 22:03:45