欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年09月12日 12:22:11   作者:笨木頭  
這篇文章主要介紹了C++中調(diào)用Lua函數(shù)實(shí)例,本文給出了Lua和C++的代碼,并對(duì)步驟做了講解,需要的朋友可以參考下

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

上一章傳送門:http://www.dbjr.com.cn/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)寫,你負(fù)責(zé)吐槽~)
 
來(lái),大家忽略旁白,教程什么的還是我來(lái)寫比較好,主要是,吐槽這工作,不符合我的身份~
(旁白:…我有種被打擊了的感覺(jué))
 
本章到此結(jié)束,很簡(jiǎn)單吧?~

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

相關(guān)文章

  • Linux下編寫Lua擴(kuò)展so文件和調(diào)用方法實(shí)例

    Linux下編寫Lua擴(kuò)展so文件和調(diào)用方法實(shí)例

    這篇文章主要介紹了Linux下編寫Lua擴(kuò)展so文件和調(diào)用方法實(shí)例,本文給出C語(yǔ)言代碼、編譯SO文件、Lua中調(diào)用代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • Lua中實(shí)現(xiàn)StringBuffer功能

    Lua中實(shí)現(xiàn)StringBuffer功能

    這篇文章主要介紹了Lua中實(shí)現(xiàn)StringBuffer功能,本文給出了實(shí)現(xiàn)代碼和調(diào)用代碼,需要的朋友可以參考下
    2014-11-11
  • 使用lua實(shí)現(xiàn)php的var_dump()函數(shù)功能

    使用lua實(shí)現(xiàn)php的var_dump()函數(shù)功能

    小編比較熟悉php,所以這篇文章主要介紹了使用lua實(shí)現(xiàn)php的var_dump()函數(shù)功能,需要的朋友可以參考下
    2014-11-11
  • Lua調(diào)用自定義C模塊

    Lua調(diào)用自定義C模塊

    Lua可以調(diào)用C函數(shù)的能力將極大的提高Lua的可擴(kuò)展性和可用性。對(duì)于有些和操作系統(tǒng)相關(guān)的功能,或者是對(duì)效率要求較高的模塊,我們完全可以通過(guò)C函數(shù)來(lái)實(shí)現(xiàn),之后再通過(guò)Lua調(diào)用指定的C函數(shù)。對(duì)于那些可被Lua調(diào)用的C函數(shù)而言,其接口必須遵循Lua要求的形式
    2015-09-09
  • 使用Lua作為C語(yǔ)言項(xiàng)目的配置文件實(shí)例

    使用Lua作為C語(yǔ)言項(xiàng)目的配置文件實(shí)例

    這篇文章主要介紹了使用Lua作為C語(yǔ)言項(xiàng)目的配置文件實(shí)例,本文用Lua創(chuàng)建了一個(gè)配置文件,然后在C言語(yǔ)中解析它,需要的朋友可以參考下
    2015-04-04
  • 詳解Lua中的元表概念

    詳解Lua中的元表概念

    這篇文章主要介紹了詳解Lua中的元表,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • C調(diào)用lua函數(shù)需要考慮的問(wèn)題

    C調(diào)用lua函數(shù)需要考慮的問(wèn)題

    這篇文章主要介紹了C調(diào)用lua函數(shù)需要考慮的問(wèn)題,本文羅列了4條需要注意的問(wèn)題,并給出了調(diào)用實(shí)例,需要的朋友可以參考下
    2015-04-04
  • Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)

    Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)

    這篇文章主要介紹了Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié),本文總結(jié)了賦值、局部變量與塊、控制結(jié)構(gòu)、數(shù)字型for、泛型for等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua中關(guān)于元方法的一些知識(shí)點(diǎn)小結(jié)

    Lua中關(guān)于元方法的一些知識(shí)點(diǎn)小結(jié)

    這篇文章主要介紹了Lua中關(guān)于元方法的一些知識(shí)點(diǎn)小結(jié),本文講解了兩個(gè)具有不同元表的值進(jìn)行算術(shù)操作、關(guān)系類的元方法、保護(hù)元表,需要的朋友可以參考下
    2014-09-09
  • Lua中的數(shù)學(xué)庫(kù)總結(jié)

    Lua中的數(shù)學(xué)庫(kù)總結(jié)

    這篇文章主要介紹了Lua中的數(shù)學(xué)庫(kù)總結(jié),本文羅列了Lua5.1中數(shù)學(xué)庫(kù)的所有函數(shù),需要的朋友可以參考下
    2014-11-11

最新評(píng)論