C++調(diào)用Lua代碼配置文件函數(shù)的方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!
創(chuàng)新互聯(lián)建站主營(yíng)會(huì)澤網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),會(huì)澤h5成都微信小程序搭建,會(huì)澤網(wǎng)站營(yíng)銷(xiāo)推廣歡迎會(huì)澤等地區(qū)企業(yè)咨詢(xún)Lua文件里面是有兩個(gè)函數(shù)的,然后用cpp文件調(diào)用代碼,最后,還有很關(guān)鍵的一步,編譯時(shí),我們需要加上附加選項(xiàng): g++ main.cpp -o main -llua -ldl。過(guò)程看起來(lái)簡(jiǎn)單,還是需要?jiǎng)邮植僮鞯摹?/p>
首先你要安裝lua的dev,安裝很簡(jiǎn)單:
yum install lua-devel
即可,很多Linux系統(tǒng)自帶Lua但是沒(méi)有dev,有點(diǎn)小坑。
下面是Lua文件,里面就兩個(gè)函數(shù):
function add(a, b)
return a + b
end
function hello()
print("Hello Lua!!!")
end之后是cpp文件的調(diào)用代碼:
#include<iostream>
#include<string>
using std::cout;
using std::endl;
using std::string;
//extern的意義,將下面文件當(dāng)成C風(fēng)格文件使用
extern "C"
{
#include<lua.h>
#include<lauxlib.h>
#include<lualib.h>
}
int main()
{
//創(chuàng)建環(huán)境
lua_State *L = luaL_newstate();
if(L == NULL)
{
cout << "State error" << endl;
return -1;
}
//加載庫(kù)
luaL_openlibs(L);
const string file = "func.lua";
// 加載文件
int ret = luaL_dofile(L, file.c_str());
if(ret)
{
cout << "dofile error" << endl;
return -1;
}
//hello函數(shù)沒(méi)有參數(shù),直接調(diào)用
lua_getglobal(L, "hello");
lua_pcall(L, 0, 0, 0); //三個(gè)0含義,0實(shí)參,0返回值,0自定義錯(cuò)誤處理
lua_getglobal(L, "add");
//向add函數(shù)傳入兩個(gè)參數(shù),這里直接傳了1和2,傳變量也ok
lua_pushnumber(L, 1);
lua_pushnumber(L, 2);
lua_pcall(L,2,1,0);
//返回值被放在-1的位置上
cout << lua_tonumber(L, -1) << endl;
lua_close(L);
return 0;
}最后,還有很關(guān)鍵的一步,編譯時(shí),我們需要加上附加選項(xiàng):
g++ main.cpp -o main -llua -ldl
看看結(jié)果:

大功告成
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)C++調(diào)用Lua代碼配置文件函數(shù)的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享標(biāo)題:C++調(diào)用Lua代碼配置文件函數(shù)的方法-創(chuàng)新互聯(lián)
文章出自:http://chinadenli.net/article4/cohdie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站營(yíng)銷(xiāo)、全網(wǎng)營(yíng)銷(xiāo)推廣、企業(yè)建站、網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容