<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          luaTinkerlua 的封裝

          聯(lián)合創(chuàng)作 · 2023-10-01 00:36

          LuaTinker 的作者是Kwon-il Lee韓國人寫的,最新的版本是0.2.C,這個C++ wrapper For Lua能夠方便和

          快捷與C/C++通信,LuaTinker參考了luabind和luaplus的特征寫的,雖然沒有bindlua和luaplus這本強(qiáng)大

          和提供很多功能,LuaTinker的實現(xiàn)只有兩個文件,但是LuaTinker提供的基本能夠滿足大部的要求,用戶

          還可以對它進(jìn)一步的擴(kuò)充,而且用于游戲上特為方便,以下是LuaTinker使用C++結(jié)構(gòu)和類的例子:

          // 一個基類
          struct base
          {
           base() {}
          
           const char* is_base(){ return "this is base"; }
          };
          
          // 一個測試類
          class test : public base
          {
          public:
           test(int val) : _test(val) {}
           ~test() {}
          
           const char* is_test(){ return "this is test"; }
          
           void ret_void() {}
           int ret_int()   { return _test;   }
           int ret_mul(int m) const { return _test * m;  }
           A get()    { return A(_test);  }
           void set(A a)   { _test = a.value;  }
           int _test;
          };
          
          int main()
          {
           // 注冊base類型到LUA
           lua_tinker::class_<base>("base")
            .def("is_base", &base::is_base)
            ;
           
           // 注冊test類型到LUA,注冊test的成員函數(shù)和成員變量
           lua_tinker::class_<test>("test")
            .inh<base>() // 注冊繼承類
            .def(lua_tinker::constructor<int>()) //注冊構(gòu)造函數(shù)
            .def("is_test", &test::is_test)           // 注冊成員函數(shù)
            .def("ret_void", &test::ret_void)
            .def("ret_int", &test::ret_int)
            .def("ret_mul", &test::ret_mul)
            .def("get", &test::get)
            .def("set", &test::set)
            .def_readwrite("_test", &test::_test) // 注冊成員變量
            ;
          
           test g_test(11);
           
           lua_tinker::decl("g_test", &g_test);
           
          }

           

          // Lua腳本

          temp = test(4)  創(chuàng)建一個test類
          print(temp._test) 打印test的_test成員
          
          print(g_test)     
          print(g_test._test) 打印g_test的成員變量_test
          print(g_test:is_test()) 輸出信息  
          print(g_test:ret_int()) 返回g_test的成員變量_test

           

          這么幾句就能夠方便的使用C/C++定義的結(jié)構(gòu)或類

          瀏覽 19
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本黄色视频。 | 中文无码网站 | 性爱視频一区二区三区 | 楪可怜Av一区二区三区 | 免费看黃色AAAAAA片 |