主頁(yè) > 知識(shí)庫(kù) > C++中調(diào)用Lua函數(shù)實(shí)例

C++中調(diào)用Lua函數(shù)實(shí)例

熱門標(biāo)簽:開(kāi)通400電話申請(qǐng)流程 上海企業(yè)外呼系統(tǒng)排名 武漢百應(yīng)人工智能電銷機(jī)器人 智能語(yǔ)音電銷的機(jī)器人 400手機(jī)電話免費(fèi)辦理 百度地圖標(biāo)注位置網(wǎng)站 揚(yáng)州電銷外呼系統(tǒng)軟件 如何利用高德地圖標(biāo)注家 電腦外呼系統(tǒng)輻射大嗎

唉,今天心情有點(diǎn)糟糕,我就少說(shuō)一些啰嗦的話了。
(旁白:太好了…)

上一章傳送門:https://www.jb51.net/article/55096.htm

經(jīng)過(guò)前面幾章的介紹,相信大家對(duì)Lua的堆棧已經(jīng)比較熟悉了,如果還不是很熟悉的朋友,建議多看幾遍前面的教程,或者多敲幾次代碼。

那么,如果已經(jīng)對(duì)Lua的堆棧比較熟悉,接下來(lái)的內(nèi)容就很簡(jiǎn)單了。

今天我們來(lái)看看C++如何調(diào)用Lua的函數(shù),先看看現(xiàn)在Lua文件是什么樣的:

復(fù)制代碼 代碼如下:

-- helloLua.lua文件
myName = "beauty girl"

helloTable = {name = "mutou", IQ = 125}

function helloAdd(num1, num2)
 return (num1 + num2)
end;


我們看到多了個(gè)helloAdd函數(shù),那么,現(xiàn)在我們要用C++調(diào)用這個(gè)函數(shù)。
(旁白:肯定又要用到getglobal了,每次都有它~!= =)
 
直接上代碼了:
復(fù)制代碼 代碼如下:

/* C++調(diào)用lua的函數(shù) */
void HelloLua::demo3() {
    lua_State* pL = lua_open();
    luaopen_base(pL);

    /* 執(zhí)行腳本 */
    luaL_dofile(pL, "helloLua.lua");

    /* 把helloAdd函數(shù)對(duì)象放到棧中 */
    lua_getglobal(pL, "helloAdd");

    /* 把函數(shù)所需要的參數(shù)入棧 */
    lua_pushnumber(pL, 10);
    lua_pushnumber(pL, 5);

    /*
        執(zhí)行函數(shù),第一個(gè)參數(shù)表示函數(shù)的參數(shù)個(gè)數(shù),第二個(gè)參數(shù)表示函數(shù)返回值個(gè)數(shù) ,
        Lua會(huì)先去堆棧取出參數(shù),然后再取出函數(shù)對(duì)象,開(kāi)始執(zhí)行函數(shù)
    */
    lua_call(pL, 2, 1);

    int iResult = lua_tonumber(pL, -1);
    CCLOG("iResult = %d", iResult);
}


簡(jiǎn)單說(shuō)明一下步驟:
1) 執(zhí)行腳本(旁白:我就知道你會(huì)說(shuō)廢話。。。)
2) 將helloAdd函數(shù)放到棧中:lua_getglobal(pL, “helloAdd”) 。(旁白:看吧,我就知道~?。?br /> 3) helloAdd有2個(gè)參數(shù),我們要把參數(shù)傳遞給lua,所以2個(gè)參數(shù)都要放到棧里。
4) 第2和第3步已經(jīng)把函數(shù)所需要的數(shù)據(jù)都放到棧里了,接下來(lái)只要告訴lua去棧里取數(shù)據(jù),執(zhí)行函數(shù)~! 調(diào)用lua_call即可,注釋已經(jīng)很詳細(xì)了,這里就不重復(fù)了。
(旁白:太簡(jiǎn)單了點(diǎn)吧,反正不管做什么事情,把東西丟到棧里,然后從棧里取東西,就OK了~你可以滾了,以后教程我來(lái)寫(xiě),你負(fù)責(zé)吐槽~)
 
來(lái),大家忽略旁白,教程什么的還是我來(lái)寫(xiě)比較好,主要是,吐槽這工作,不符合我的身份~
(旁白:…我有種被打擊了的感覺(jué))
 
本章到此結(jié)束,很簡(jiǎn)單吧?~

下一章我們介紹在Lua中調(diào)用C++的函數(shù)~!
(旁白:這個(gè)我喜歡~?。?/p>

您可能感興趣的文章:
  • Lua教程(二十):Lua調(diào)用C函數(shù)
  • Lua教程(四):在Lua中調(diào)用C語(yǔ)言、C++的函數(shù)
  • Lua教程(三):C語(yǔ)言、C++中調(diào)用Lua的Table示例
  • Lua中調(diào)用C++函數(shù)實(shí)例
  • Lua調(diào)用自定義C模塊
  • Lua中調(diào)用C語(yǔ)言函數(shù)實(shí)例
  • Lua教程(十九):C調(diào)用Lua
  • Lua編程示例(六): C語(yǔ)言調(diào)用Lua函數(shù)
  • C語(yǔ)言中調(diào)用Lua函數(shù)實(shí)例
  • C語(yǔ)言與Lua之間的相互調(diào)用詳解

標(biāo)簽:江西 延邊 武漢 宜賓 嘉峪關(guān) 黑龍江 張掖 新余

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《C++中調(diào)用Lua函數(shù)實(shí)例》,本文關(guān)鍵詞  C++,中,調(diào)用,Lua,函數(shù),實(shí)例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《C++中調(diào)用Lua函數(shù)實(shí)例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于C++中調(diào)用Lua函數(shù)實(shí)例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章