lua 與c++互動 之呼叫函式
阿新 • • 發佈:2019-02-08
</pre><pre name="code" class="cpp">
對c/c++ 與lua的互動呼叫函式做一個小總結
#include <iostream> extern "C" { #include "lua.h" #include <lauxlib.h> #include <lualib.h> } /* -- lua 檔案內的內容 a = 10 function show(param) return a + param end */ int main() { // 建立一個state 區域 lua_State* L = luaL_newstate(); // opens the basic library 這些是在引入一些庫 luaL_openlibs(L); // 讀取lua檔案 讀取成功返回0, 失敗返回非零整數 if(luaL_dofile(L,"lua_prac.lua") != 0) { printf("檔案lua_prac.lua讀取失敗"); return 0; } // 將lua中的函式名壓入棧中 lua_getglobal(L,"show"); // 將引數傳入函式show中 lua_pushnumber(L,3); // 呼叫函式 lua_pcall(L,1,1,0); // 將函式的返回結果取出來 即nResult int nResult = lua_tointeger(L,-1); printf("%d",nResult); getchar(); return 0; }
以上例子能正常執行的條件是有lua-5.1.5中的lua.h檔案 和lua51.lib檔案找得到, 一般都是加一下附加目錄