從 C++ 到 Lua 傳遞 Lua 指令碼
從 C++ 到 Lua 傳遞 Lua 指令碼的想法包括一個事實,即由於 Lua 是 ANSI C,我們需要載入庫和標頭檔案,並且如果我們在 C++ 中進行編碼,我們需要用 extern "C" 來封裝 #includes。
常用且歷史較久的方法是載入 Lua 提供的庫,然後從 Lua 直接呼叫 C++ 函式。
要從 C++ 載入指令碼到 Lua,我們需要設定並關閉 Lua 直譯器,我們可以藉助以下程式碼來完成此操作。
示例
考慮如下所示的程式碼:
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
int main(int argc, char *argv[]){
lua_State* L;
initialize Lua interpreter L = luaL_newstate();
load Lua base libraries (print / math / etc) luaL_openlibs(L);
////////////////////////////////////////////
We can use Lua here !
/////////////////////////////////////////////
lua_close(L);
printf( "Press enter to exit..." );
getchar();
return 0;
}之後,我們只需使用 LuaL_dostring(L, …) 函式,將字串直接傳送到 Lua 直譯器中,它將被執行,就好像該字串在用 dofile 執行的檔案中一樣。
示例
考慮如下所示的程式碼:
luaL_dostring(L, "for x = 1, 5 do print(x) end");
輸出
1 2 3 4 5
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP