• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            luabind常用方法總結

            luabind比較復雜,功能包羅萬象,但使用起來比較簡單,特別是最常用的方法只有幾個,下面結合一個簡單的例子總結一下。     在我們游戲應用中,一般都是已c++為主導的,也就是說c++主動調用lua腳本。
            先寫一個比較常見的lua腳本:
            1. nGlobal = 10 --一個全局的整形變量   
            2. strGlobal = "hello i am in lua" --一個全局的字符串變量   
            3. --一個返回值為int類型的函數(shù)   
            4. function add(a, b)   
            5.     return a+b   
            6. end   
            7. --一個返回值為string類型的函數(shù)   
            8. function strEcho(a)   
            9.     print(a) 10   
            10.     return 'haha i have print your input param'   
            11. end   
            12. cppapi.testFunc() --調用c++暴露的一個測試函數(shù)   
            13. t={name='ettan', age=23, desc='正值花季年齡'}  
             
            ////////////////////////////////////lua腳本結束
            下面寫c++函數(shù)中的調用了
            1. #include<iostream>  
            2. #include<string>  
            3. using namespace std;  
            4. #include<lua.hpp>  
            5. #include<luabind/function.hpp>  
            6. void testFunc()  
            7. {  
            8.     cout<<"helo there, i am a cpp fun"<<endl;  
            9. }  
            10. int main(int argc, char* argv[])  
            11. {  
            12.     //首先聲明luaState環(huán)境  
            13.     using namespace luabind;  
            14.     lua_State* L = lua_open();  //也可以用luaL_newState()函數(shù)  
            15.     luaL_openlibs(L);   //注意將lua默認庫打開,要不會出現(xiàn)N多錯誤的,比如print函數(shù)都沒有  
            16.     //將c++中的函數(shù)暴露給lua  
            17.     module(L, "cppapi")  
            18.     [  
            19.         def("testFunc", (void(*)(void))testFunc)  
            20.     ];  
            21.     //加載lua腳本,我們臨時起名test.lua  
            22.     luaL_dofile(L, "test.lua");  
            23.     try  
            24.     {  
            25.         //調用lua中的整形全局變量  
            26.         int nLuaGlobal =     luabind::object_cast<int>(luabind::globals(L)["nGlobal"]) ;  
            27.         //調用lua中的字符串變量  
            28.         string strLuaGlobal = luabind::object_cast<string>(luabind::globals(L)["strGlobal"]);  
            29.         //獲取table,方法一,通過luabind::object 固有方法  
            30. luabind::object luaTable = luabind::globals(L)["t"] ;  
            31. string name=luabind::object_cast<string>(luaTable["name"]) ;  
            32.         int age = luabind::object_cast<int>(luaTable["age"]) ;  
            33.         //獲取table,方法二,通過gettable  
            34.         string desc = luabind::object_cast<string>(luabind::gettable(luaTable,"desc"));  
            35.         //下面是調用lua中函數(shù)  
            36.         int nAddRes = luabind::call_function<int>(L, "add", 3, 4) ;  
            37.         string strEchoRes = luabind::call_function<string>(L, "strEcho", "c++參數(shù)") ;  
            38.     }  
            39.     catch(...)  
            40.     {  
            41.         cout<<"error"<<endl;  
            42.     }  
            43.     return 0;  
            44. }  
             
                我們目前常用的方法暫時就有這些,當然在實際編碼中,c++暴露給lua的經常是c++類中的函數(shù),只要稍加修改就行!

            posted on 2012-10-18 23:45 多彩人生 閱讀(912) 評論(0)  編輯 收藏 引用 所屬分類: lua

            導航

            統(tǒng)計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            一本色综合久久| 久久亚洲电影| 99久久国语露脸精品国产| 久久亚洲中文字幕精品有坂深雪 | 99精品伊人久久久大香线蕉| 久久99精品九九九久久婷婷| 久久久黄色大片| 久久精品一区二区三区不卡| 免费一级做a爰片久久毛片潮| 欧洲精品久久久av无码电影| 国产精品欧美久久久久天天影视 | 精品九九久久国内精品| 亚洲伊人久久成综合人影院 | 99久久精品久久久久久清纯 | 99热成人精品免费久久| 久久无码专区国产精品发布| 精品久久久久久国产91| 国色天香久久久久久久小说| 久久本道综合久久伊人| 国产精品久久久久久久久| 久久受www免费人成_看片中文| 久久精品草草草| 久久国产热精品波多野结衣AV| 亚洲人成无码网站久久99热国产| 亚洲午夜精品久久久久久人妖| 色偷偷偷久久伊人大杳蕉| 欧美一级久久久久久久大| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 日韩精品久久无码中文字幕| 久久久国产一区二区三区| 色综合久久最新中文字幕| 久久精品亚洲一区二区三区浴池 | 国内精品久久久久久久coent| 久久香蕉国产线看观看精品yw| 精品久久久久久无码不卡| 久久国产成人亚洲精品影院 | 囯产精品久久久久久久久蜜桃| 久久久久无码专区亚洲av| 久久久久亚洲精品无码网址| 久久综合成人网| 色狠狠久久AV五月综合|