最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2014年09月12日 12:31:45   作者:笨木頭  
這篇文章主要介紹了Lua中調(diào)用C++函數(shù)實例,本文是Lua和C++通信系列文章的最后一篇,需要的朋友可以參考下

到這為止,大家對Lua和C++之間的通信應(yīng)該有些熟悉了,今天我們來介紹最后一個操作。
(旁白:什么?最后一個?要結(jié)束了么?太好了~?。?/p>

上一章傳送門:http://www.fzitv.net/article/55097.htm

1. Lua調(diào)用C++的函數(shù)

Lua要調(diào)用C++的函數(shù)還是蠻方便的,首先,我們來創(chuàng)建一個c++函數(shù)先:

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

public:
  static int getNumber(int num);
  
  
int HelloLua::getNumber( int num ) {
    CCLOG("getNumber num = %d", num);
    return num + 1;
}

類的什么的,我就忽略了,直接上函數(shù)。
(旁白:= =好懶?。?br />  
這是一個很簡單的函數(shù),給出一個值,返回一個+1后的值。
現(xiàn)在,我們想在Lua中調(diào)用這個函數(shù),得多寫一個函數(shù)。
(旁白:那個,為嘛getNumber函數(shù)是靜態(tài)的?)
復(fù)制代碼 代碼如下:

public:
static int cpp_GetNumber(lua_State* pL);


int HelloLua::cpp_GetNumber( lua_State* pL ) {
    /* 從棧頂中取一個值 */
    int num = (int)lua_tonumber(pL, 1);

    /* 調(diào)用getNumber函數(shù),將返回值入棧 */
    lua_pushnumber(pL, getNumber(num));

    /* 返回值個數(shù),getNumber只有一個返回值,所以返回1 */
    return 1;
}


(旁白:又是靜態(tài)的?。?br /> 這是怎么回事呢?我們很清楚,Lua和C++只能通過堆棧通信,所以Lua是不可能直接調(diào)用getNumber函數(shù)的,所以我們建立一個cpp_GetNumber函數(shù)作為中介。
cpp_GetNumber函數(shù)有一個lua_State* pL參數(shù),有了這個參數(shù),c++就能從Lua的堆棧中取值了,剩下的都很簡單,不想過多的解釋…
 
還是解釋一下吧。
(旁白:你妹紙的,我就知道?。?br />  
1) 首先,Lua腳本里會調(diào)用cpp_GetNumber函數(shù),至于為什么能調(diào)用,一回解釋,我知道旁白一定會問的。(旁白:有種無力吐槽的感覺。。。)
2) 當(dāng)cpp_GetNumber被調(diào)用時,一切又回到C++對Lua的操作了,棧頂里會存放函數(shù)所需要的參數(shù),取出來用就可以的。
3) Lua調(diào)用cpp_GetNumber之后,需要一個結(jié)果,當(dāng)然,這個結(jié)果同樣只能存放在棧里,所以理所當(dāng)然地要把getNumber的結(jié)果入棧。
4) 最后,cpp_GetNumber return了一個值,這個值不是函數(shù)的執(zhí)行結(jié)果,而是getNumber需要返回值的個數(shù)(Lua支持多個返回值的函數(shù))
旁白,你明白了么?
(旁白:額。。。沒明白)
 
好,既然大家都明白了,我就不多說了~
(旁白:你妹紙的O O!)

2. 結(jié)束了

最后,關(guān)于Lua的教程,到此告一段落了,本來我還想寫寫LuaBind的教程的(非常強大?。5?,寫教程是一件很耗時的工作,10分鐘能學(xué)會的知識,也許我要花2個小時才能誕生一篇教程。(旁白:好吧,所以大家多些支持他吧。。。)
 
不過,如果大家把這6篇教程吃透,然后再去用Lua在Cocos2d-x里開發(fā),就沒什么大的難度了。(最好再去了解一下LuaBind)
或許,我以后會接著寫Lua的教程,而現(xiàn)在,我要繼續(xù)學(xué)習(xí)Cocos2d-x去了~因為寫教程的緣故(這兩周一直在寫狀態(tài)機的教程以及Lua的教程),我停止了接近兩周的時間。得抓緊了~不能落后~
那么,祝大家元旦快樂。
(旁白:你確定你元旦之后會發(fā)這篇教程么?)
 
然后,希望大家輕輕地動一下鼠標(biāo),點一下“頂”~嘿嘿

相關(guān)文章

  • Lua教程(十三):弱引用table

    Lua教程(十三):弱引用table

    這篇文章主要介紹了Lua教程(十三):弱引用table,一個table的弱引用類型是通過其元表的__mode字段來決定的,如果該值為包含字符"k",那么table就是key弱引用,如果包含"v",則是value弱引用,如果兩個字符均存在,就是key/value弱引用,需要的朋友可以參考下
    2015-04-04
  • Lua返回一個Closures函數(shù)實例

    Lua返回一個Closures函數(shù)實例

    這篇文章主要介紹了Lua返回一個Closures函數(shù)實例,本文直接給出代碼實例,需要的朋友可以參考下
    2015-04-04
  • Lua中pairs與ipairs的區(qū)別總結(jié)

    Lua中pairs與ipairs的區(qū)別總結(jié)

    這篇文章主要給大家介紹了關(guān)于Lua中pairs與ipairs區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • Lua中遍歷數(shù)組和table的4種方法

    Lua中遍歷數(shù)組和table的4種方法

    這篇文章主要介紹了Lua中遍歷數(shù)組和table的4種方法,本文講解了使用for遍歷、迭代器的方式遍歷等方法,同時提供一個復(fù)雜table的的遍歷方法,需要的朋友可以參考下
    2015-04-04
  • Nginx+lua 實現(xiàn)調(diào)用.so文件

    Nginx+lua 實現(xiàn)調(diào)用.so文件

    本文給大家分享的是Nginx結(jié)合lua 實現(xiàn)調(diào)用.so動態(tài)鏈接庫文件的方法和示例,有需要的小伙伴可以參考下
    2017-05-05
  • Lua獲取系統(tǒng)時間和時間格式化方法及格式化參數(shù)

    Lua獲取系統(tǒng)時間和時間格式化方法及格式化參數(shù)

    這篇文章主要介紹了Lua獲取系統(tǒng)時間和時間格式化方法及格式化參數(shù),需要的朋友可以參考下
    2015-04-04
  • 舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu)

    舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了舉例講解Lua中的Table數(shù)據(jù)結(jié)構(gòu),說明都融入到了注釋中,需要的朋友可以參考下
    2015-07-07
  • Lua教程(二):基礎(chǔ)知識、類型與值介紹

    Lua教程(二):基礎(chǔ)知識、類型與值介紹

    這篇文章主要介紹了Lua教程(二):基礎(chǔ)知識、類型與值介紹,本文講解了Hello World程序、代碼規(guī)范、全局變量、類型與值等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • 解析Lua中的全局環(huán)境、包、模塊組織結(jié)構(gòu)

    解析Lua中的全局環(huán)境、包、模塊組織結(jié)構(gòu)

    Lua中也擁有和Python世界相似的代碼的作用范圍和組織方式,下面我們就來簡單解析Lua中的全局環(huán)境、包、模塊組織結(jié)構(gòu),需要的朋友可以參考下
    2016-06-06
  • 把Lua函數(shù)傳遞到C/C++中實例

    把Lua函數(shù)傳遞到C/C++中實例

    這篇文章主要介紹了把Lua函數(shù)傳遞到C/C++中實例,本文先是分析了需求,然后給出解決方法,需要的朋友可以參考下
    2014-11-11

最新評論

福清市| 东乌| 彰化市| 德州市| 乌审旗| 延吉市| 常州市| 房山区| 洪江市| 吉林市| 清原| 辽阳市| 大冶市| 雅安市| 长白| 中西区| 潞城市| 区。| 仲巴县| 邢台市| 屯留县| 定州市| 中超| 枣强县| 兴海县| 平乡县| 福贡县| 大田县| 于都县| 乌拉特前旗| 泗水县| 新巴尔虎右旗| 库车县| 枝江市| 乾安县| 剑河县| 蒙阴县| 龙陵县| 咸阳市| 都昌县| 美姑县|