新建乙個工程,將編譯出來的lua.lib包含進來,就可以開始用了
1、c++ 呼叫 lua
編寫**如下:
#include using namespace std;
#pragma comment(lib, "lua.lib")
extern "c"
void main()
int nret = lual_loadfile(l, "luatest.lua"); // 載入測試檔案
if (nret != 0)
lua_pcall(l, 0, lua_multret, 0); // 初始化函式呼叫
// 開始呼叫lua函式
lua_getglobal(l, "luafun"); // 在全域性表中查詢luafun函式
lua_pushinteger(l, 5); // 傳乙個引數5
nret = lua_pcall(l, 1, 1, 0); // 告訴lua我要傳乙個引數給他(第乙個1),他要回乙個結果給我(第二個1)
if (nret != 0)
int nvalue = lua_tointeger(l, -1); // 獲取返回引數
cout << nvalue << endl;
}
在luatest.lua中,我們的**是這樣的
function luafun(n)
return n * n
end
這個程式最終會輸出25
2、lua呼叫c++
#include using namespace std;
#pragma comment(lib, "lua.lib")
extern "c"
int cppfun(lua_state* l)
void main()
int nret = lual_loadfile(l, "luatest.lua"); // 載入測試檔案
if (nret != 0)
lua_pcall(l, 0, lua_multret, 0); // 初始化函式呼叫
lua_register(l, "cppfun", &cppfun); // 註冊乙個lua可以呼叫的c++函式
// 開始呼叫lua函式
lua_getglobal(l, "luafun"); // 在全域性表中查詢luafun函式
lua_pcall(l, 0, 0, 0);
}
在lua中我們的**是這樣的
function luafun()
cppfun("lua call cpp") // 呼叫註冊過的c++函式
end
這個程式最後會輸出lua call c lua和c 相互呼叫
include include include include include extern c lua state l int luaadd lua state l,int x,int y extern int cl domylua lua state l extern int cl drawte...
使用tolua 實現C 與LUA相互呼叫
lua是一種目前很流行的高效精簡的指令碼語言。lua乙個特點是比較方便的與c通訊。然而要在指令碼中使用c 類使用基本的lua方法還是比較麻煩,純手工暴露乙個類的介面到lua工作量還是很大的,而且都是一些簡單的重複勞動。好在有tolua 這個工具,可以讓程式設計師從簡單的重複勞動解脫出來。tolua ...
lua與C C 的相互呼叫(一)
今天剛剛接觸lua,c c 程式怎麼呼叫lua呢?配置 2.vs 2015 新建乙個工程,名為lua。選擇c win32空專案,應用程式型別選擇靜態庫。5.開始編譯注意選擇debug 6.編譯好之後去工程所在的資料夾找lua.lib檔案 新建乙個簡單的程式 1.建立乙個c win32控制台應用程式的...