婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua中調用C++函數實例

Lua中調用C++函數實例

熱門標簽:上海企業外呼系統排名 智能語音電銷的機器人 如何利用高德地圖標注家 400手機電話免費辦理 揚州電銷外呼系統軟件 開通400電話申請流程 百度地圖標注位置網站 電腦外呼系統輻射大嗎 武漢百應人工智能電銷機器人

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

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

1. Lua調用C++的函數

Lua要調用C++的函數還是蠻方便的,首先,我們來創建一個c++函數先:

復制代碼 代碼如下:

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

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

public:
static int cpp_GetNumber(lua_State* pL);


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

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

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


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

2. 結束了

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

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

標簽:張掖 宜賓 嘉峪關 武漢 江西 新余 黑龍江 延邊

巨人網絡通訊聲明:本文標題《Lua中調用C++函數實例》,本文關鍵詞  Lua,中,調用,C++,函數,實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua中調用C++函數實例》相關的同類信息!
  • 本頁收集關于Lua中調用C++函數實例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 通河县| 新丰县| 梁平县| 河西区| 伊春市| 西林县| 夏邑县| 奎屯市| 焦作市| 长兴县| 内黄县| 怀柔区| 日照市| 子长县| 涟源市| 淮滨县| 东山县| 视频| 乌鲁木齐县| 万载县| 韶关市| 洪湖市| 广安市| 凤翔县| 海南省| 南郑县| 竹山县| 江都市| 安福县| 乳山市| 蓬溪县| 澄迈县| 固原市| 英吉沙县| 基隆市| 陆良县| 威信县| 郑州市| 锦屏县| 贵溪市| 海兴县|