• <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>

            saiksy

            記錄生活中的點點滴滴

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              13 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

            既然是從零開始,那么就搞的傻瓜一點,就算是手把手教了. 哈哈.

            一下內(nèi)容在vs2005實現(xiàn)

            新建一個空的win32控制臺項目.

            1.首先我們來配置頭文件和庫文件:

            頭文件:

            D:\Lua\lua-5.1.4\src

            D:\Lua\luabind
            -0.8.1

            D:\Lua\boost_1_41_0

            庫文件:無.見代碼.

             

            下面就是cpp內(nèi)容了:注釋都是個人理解,如果您覺得不對

            #include <luabind/luabind.hpp>
            #pragma comment(lib,
            "lualib.lib"//可能你會問,lualib.lib是哪里來的? 這是我自己編譯luabind得到

            //的,  如果你不知道怎么編譯,參考下我的另一篇文章<從零開始使用luabind>
            #include <iostream>
            using namespace std;
            using namespace luabind;


            class testlua//寫一個測試類,包括一些簡單的方法.
            {
            public:
             testlua(std::
            string s):m_str(s){};
             
            void myprint()
             
            {
              cout 
            << m_str << endl;
             }

             
            void setstr(std::string s){ m_str = s;};
            private:
             std::
            string m_str;
            }
            ;


            int main()
            {
             lua_State 
            *= luaL_newstate();//新建一個lua_State,或者叫做創(chuàng)建lua狀態(tài)
             luabind::open(L);//為改lua狀態(tài)打開所有l(wèi)ua庫

            //把寫好的類綁定到lua,以下內(nèi)容為讀書所得,我看的是missdeer同學(xué)翻譯的luabindmanual一書.
            //相信好學(xué)的你,如果不明白這是怎么用的,一定會找來這書讀一讀的,當(dāng)然我也很樂意和您分享(Q:625425901)

             module(L)

            [  
               class_
            <testlua>("testlua")
               .def(constructor
            <const std::string>())
               .def(
            "myprint",&testlua::myprint)//開放這兩個函數(shù)給lua使用
               .def("setstr"&testlua::setstr)
              ];

             
             luaL_dofile(L,
            "test.lua");//執(zhí)行l(wèi)ua文件,稍后你會看到test.lua文件的內(nèi)容
             lua_close(L);//關(guān)閉lua狀態(tài)
             return 0;
            }


             

            以下是test.lua內(nèi)容:


            local a 
            = testlua("hello lua!");--看不懂?如果我說它在c里是這樣的: testlua obj = testlua("hello lua!"),看懂了么?恩,構(gòu)建testlua類的對象.

            a:myprint();
            //調(diào)用方法

            a:setstr(
            "yes lua!");

            a:myprint();

             

            --接下來我們在lua里嘗試如下代碼:

            a:hisprint();

            --你也許會問,這個函數(shù)不存在啊.確實不存在,但是程序并沒有報錯,所以或許我們需要其他的代碼來處理這種錯誤的調(diào)用,后話了,慢慢來.

             

            好了,執(zhí)行一下C代碼,你應(yīng)該會看到想要的結(jié)果了.相信不少同學(xué)看到這里已經(jīng)開始計劃寫一個類,用來隨心所欲的開放你的C方法給lua使用了.先到這里.

            歡迎批評指正.

             

            posted on 2011-05-19 01:08 saiksy 閱讀(495) 評論(1)  編輯 收藏 引用

            Feedback

            # re: 使用luabind的第一段代碼 2011-05-19 10:27 K.V
            我覺得腳本最大的問題就是不好調(diào)試。  回復(fù)  更多評論
              


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            性做久久久久久久久久久| 免费精品久久天干天干| 久久精品国产99国产精品澳门| 久久精品无码专区免费东京热| 狠狠久久亚洲欧美专区| Xx性欧美肥妇精品久久久久久| 久久久黄色大片| 久久婷婷久久一区二区三区| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 精品国产乱码久久久久久人妻| 国产A级毛片久久久精品毛片| 亚洲国产精品一区二区久久hs| 久久免费高清视频| 亚洲色婷婷综合久久| 国产成人AV综合久久| 奇米影视7777久久精品| 天天影视色香欲综合久久| 情人伊人久久综合亚洲| 亚洲AV日韩精品久久久久久| 久久影视综合亚洲| 国产精品美女久久久网AV| 久久久久久国产精品无码下载| 丰满少妇人妻久久久久久4| jizzjizz国产精品久久| 亚洲∧v久久久无码精品| 一级A毛片免费观看久久精品| 国产高潮国产高潮久久久91 | 看全色黄大色大片免费久久久| 久久久精品免费国产四虎| 久久人人添人人爽添人人片牛牛| 久久久久97国产精华液好用吗| 欧美精品一区二区精品久久| 久久精品中文字幕无码绿巨人 | 人妻精品久久久久中文字幕一冢本| 久久久久人妻一区精品| 国产三级精品久久| 久久久WWW成人免费精品| 国产精品一久久香蕉产线看| 国内精品久久久久久99蜜桃| 无码AV波多野结衣久久| 久久这里只有精品18|