锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩中文久久,亚洲AV无码1区2区久久,日韩精品久久无码人妻中文字幕http://www.shnenglu.com/eros/category/10410.html鎺㈢儲C++zh-cnSat, 12 Jun 2010 05:24:33 GMTSat, 12 Jun 2010 05:24:33 GMT60luabind璇誨彇lua鑴氭湰涓殑鍙橀噺http://www.shnenglu.com/eros/archive/2010/05/15/115417.html鏋楀叕瀛?/dc:creator>鏋楀叕瀛?/author>Fri, 14 May 2010 17:40:00 GMThttp://www.shnenglu.com/eros/archive/2010/05/15/115417.htmlhttp://www.shnenglu.com/eros/comments/115417.htmlhttp://www.shnenglu.com/eros/archive/2010/05/15/115417.html#Feedback0http://www.shnenglu.com/eros/comments/commentRss/115417.htmlhttp://www.shnenglu.com/eros/services/trackbacks/115417.html     鍒氬紑濮嬩嬌鐢╨uabind錛屽涓浜涘熀鏈殑浣跨敤鏈変簺浜嗚В錛岃褰曚笅鏉ヤ互澶囨煡闃呫傝繖綃囨枃绔犻噷涓昏璁ㄨ濡備綍鍦–++涓闂甽ua鑴氭湰涓殑鍙橀噺錛屽嚱鏁般?br>     鍋囪鏈変竴涓猼est.lua鑴氭湰錛屽唴瀹瑰涓嬶細

 1--test.lua
 2
 3function printColor()
 4    colour = ColourValue(1111);
 5    colour:printColor();
 6end
 7
 8Config = 
 9{
10    color = ColourValue(1111),
11    count = 5,
12    fun = printColor
13
14}

     ColourValue鏄疌++綾伙紝瀹氫箟濡備笅錛?br>
 1class ColourValue
 2{
 3public:
 4    ColourValue(float r = 1.0,
 5                float g = 1.0,
 6                float b = 1.0,
 7                float a = 1.0) : mR(r), mB(b), mG(g), mA(a)
 8    {
 9    }

10
11    void printColor()
12    {
13        cout << mR << ""
14             << mG << ""
15             << mB << ""
16             << mA << "" 
17             << endl;
18    }

19
20protected:
21    float mR;
22    float mG;
23    float mB;
24    float mA;
25}
;

     C++瀵煎嚭綾誨埌lua涓彲浠ヨ涔嬪墠鐨勪竴綃囨枃绔?鐐硅繖閲?/a>)錛屽氨涓嶅啀璧樿堪錛屽亣璁綜olourValue鍜屽畠鐨勬垚鍛樺嚱鏁皃rintColor()宸茬粡瀵煎嚭鍒發ua錛岄偅涔堝浣曞湪C++涓闂瓹onfig琛ㄤ腑鐨勫彉閲忓憿錛熻繖閲屽氨瑕佺敤鍒發uabind涓殑globals(lua_State* L)鍑芥暟 銆?br>
    榪欎釜鍑芥暟榪斿洖鐨勬槸鍏ㄥ眬琛紝琛ㄤ腑鍖呭惈鍔犺澆鐨刲ua鑴氭湰涓墍鏈夌殑鍙橀噺錛屼笅闈緷嬈¤瑙e浣曟潵鑾峰彇Config琛ㄤ腑鐨勪笁涓彉閲忋?br>
1// 鍙栧緱鍏ㄥ眬琛ㄥ璞°?/span>
2luabind::object global = luabind::globals(L);
    
    lua鑴氭湰涓殑鎵鏈夊厓绱犻兘鏄斁鍦ㄨ繖涓叏灞琛ㄤ腑鐨勶紝鎵浠ュ彲浠ョ敤lua table鐨勮娉曟潵璁塊棶鍏朵腑鐨勫厓绱狅細
1// 鑾峰彇鑴氭湰涓殑Config琛ㄣ?/span>
2luabind::object configTable = global["Config"];
    
    榪欐牱錛屽氨鍙互閫氳繃configTable璁塊棶Config琛ㄤ腑鐨勫厓绱犱簡錛?/span>
    鈶犺闂甤olor:
1// 璁塊棶Config琛ㄤ腑鐨刢olor銆?/span>
2ColourValue color = luabind::object_cast<ColourValue>(configTable["color"]);
     娉ㄦ剰錛岃繖閲屾湁涓涓漿鍨嬪姩浣滐紝鍥犱負ColorValue綾誨凡緇忓鍏ュ埌lua涓紝鎵浠uabind鐭ラ亾濡備綍杞崲錛屽惁鍒欙紝杞崲灝嗗彂鐢熷紓甯搞?br>   
    鈶¤闂甤ount錛?/span>
1// 璁塊棶Config琛ㄤ腑count銆?/span>
2int count = luabind::object_cast<int>(configTable["count"]);
     鏈変簡涔嬪墠鐨勮榪幫紝榪欎釜搴旇寰堝ソ鐞嗚В浜嗐?/span>

     鈶㈣闂畃rintColor錛?/span>
1// 璁塊棶Config琛ㄤ腑鐨刾rintColor鍑芥暟銆?/span>
2luabind::object printColor = configTable["fun"];
     鍦–++浠g爜涓皟鐢╬rintColor鏈変袱縐嶆柟娉曪細
    
1printColor();                                      // 絎竴縐嶈皟鐢ㄦ柟娉曘?/span>
2luabind::call_function<void>(printColor); // 絎簩縐嶈皟鐢ㄦ柟娉曘?/span>
    娉ㄦ剰絎簩縐嶈皟鐢ㄦ柟娉曚嬌鐢ㄤ簡call_function鍑芥暟鐨勯噸杞藉艦寮忋?br>
     濡傛灉瑕佽闂叏灞琛ㄤ腑鐨勫彉閲忥紝鏂規硶鏄竴鏍風殑錛屽彧涓嶈繃鏄嬌鐢╣loble鍙ユ焺榪涜璁塊棶錛岃繖閲屽氨涓嶅啀璧樿█銆?/span>

]]>
Luabind瀵煎嚭綾誨埌luahttp://www.shnenglu.com/eros/archive/2009/05/02/81661.html鏋楀叕瀛?/dc:creator>鏋楀叕瀛?/author>Fri, 01 May 2009 17:32:00 GMThttp://www.shnenglu.com/eros/archive/2009/05/02/81661.htmlhttp://www.shnenglu.com/eros/comments/81661.htmlhttp://www.shnenglu.com/eros/archive/2009/05/02/81661.html#Feedback3http://www.shnenglu.com/eros/comments/commentRss/81661.htmlhttp://www.shnenglu.com/eros/services/trackbacks/81661.html  鍒氬紑濮嬪涔燣uabind錛屾墍浠ョ畻鏄竴浜涚畝鍗曠殑絎旇銆?br>  浣跨敤Luabind鍓嶈鍖呭惈鐩稿叧鐨勫ご鏂囦歡錛屽紩鍏uabind鍛藉悕絀洪棿銆傛敞鎰忓寘鍚玪uabind.hpp騫朵笉浼氳嚜鍔ㄥ寘鍚玪ua鐩稿叧澶存枃浠訛紝瑕佹牴鎹渶瑕佽嚜宸辨坊鍔犮?/span>
 
#include <luabind/luabind.hpp>

extern "C"
{
#include 
<lua.h>
#include 
<lualib.h>
}

using namespace luabind;

  鍋囪鏈変互涓嬬被瀹氫箟錛?br>
 1 // TestClass.h
 2 class TestClass
 3 {
 4 public:
 5 
 6     TestClass(string s);
 7 
 8     static TestClass* Singleton();
 9 
10     void Print();
11 
12 private:
13 
14     static TestClass* mSingleton;
15 
16     string mString;
17 };
18 
19 // TestClass.cpp
20 TestClass* TestClass::mSingleton = NULL;
21 
22 TestClass::TestClass(string s)
23 {
24     mString = s;
25 }
26 
27 TestClass* TestClass::Singleton()
28 {
29     if (TestClass::mSingleton == NULL)
30     {
31         return new TestClass("Hello");
32     }
33     else
34     {
35         return mSingleton;
36     }
37 }
38 
39 void TestClass::Print()
40 {
41     cout << mString << endl;
42 }
 
  鍒涘緩涓涓猙indClass鍑芥暟錛岀敤鏉ヨ繘琛屽鍑虹被鐨勭浉鍏沖伐浣?/span>
 1 int bindClass(lua_State* L)
 2 {
 3     open(L);
 4 
 5     module(L)
 6         [
 7             class_<TestClass>("TestClass")
 8             .def(constructor<string>())
 9             .def("Print"&TestClass::Print),
10             def("Singleton"TestClass::Singleton)    // 璇鋒敞鎰弒tatic鎴愬憳鍑芥暟Singleton()瀵煎嚭鏃跺拰闈為潤鎬佹垚鍛樺嚱鏁扮殑鍐欐硶鍖哄埆錛?br>                                                                     // 鍜屽叏灞鍑芥暟鐨勫鍑哄啓娉曚竴鏍楓?/span>
11         ];
12 
13     return 0;
14 }
  def妯$増綾諱腑瀹氫箟瀵煎嚭鍑芥暟鏃訛紝鎴愬憳鍑芥暟鎸囬拡涓瀹氳鐢ㄥ彇鍦板潃絎?/span>&錛?span style="COLOR: #000000">濡俆estClass::Print()銆?span style="FONT-FAMILY: 寰蔣闆呴粦">鑰岃嚜鐢卞嚱鏁板拰闈欐佸嚱鏁板彲鐢ㄥ彲涓嶇敤錛屽
TestClass::Singleton()銆?br>  鐜板湪灝卞彲浠ュ啓浠g爜嫻嬭瘯浜嗭細
// test.lua
1 testClass = Singleton()
2 testClass:Print()

// main.cpp
 1 int _tmain(int argc, _TCHAR* argv[])
 2 {
 3     TestClass testClass("Hello from lua.");
 4     
 5     lua_State* L = luaL_newstate();
 6 
 7     init(L);
 8 
 9     luaL_dofile(L, "add.lua");
10 
11     lua_close(L);
12 
13     return 0;
14 }
15 
  榪愯緇撴灉錛?/span>



]]>
VS2008涓嬬紪璇憀uabind 0.8.1http://www.shnenglu.com/eros/archive/2009/04/29/81508.html鏋楀叕瀛?/dc:creator>鏋楀叕瀛?/author>Wed, 29 Apr 2009 15:31:00 GMThttp://www.shnenglu.com/eros/archive/2009/04/29/81508.htmlhttp://www.shnenglu.com/eros/comments/81508.htmlhttp://www.shnenglu.com/eros/archive/2009/04/29/81508.html#Feedback2http://www.shnenglu.com/eros/comments/commentRss/81508.htmlhttp://www.shnenglu.com/eros/services/trackbacks/81508.html     瀛︿簡涓孌墊椂闂碙ua錛屾樉鐒剁洿鎺ュ湪欏圭洰涓嬌鐢ㄦ槸寰堜笉鏂逛究錛実oogle浜嗕竴涓嬶紝浼間箮澶у閮藉luabind榪欎釜lua鍖呰綾婚潚鐫愭湁鍔狅紝浜庢槸鎴戜篃闅忓ぇ鍔挎兂鐢ㄧ敤鐪嬨?br>     鍏堝仛濂藉噯澶囧伐浣滐紝涓嬭澆浜唋uabin 0.8.1婧愮爜錛孊oost 1.3.8婧愮爜鍜宭ua 5.1.4婧愮爜錛岀紪璇戠幆澧冩槸VS2008 SP1銆備箣鍓嶅湪緗戜笂鐪嬪埌涓浜涙枃绔犺榪欎簺寮婧愯蔣浠朵箣闂寸殑鐗堟湰渚濊禆姣旇緝鏁忔劅錛屽彲鑳戒細鏈夎繖鏍烽偅鏍風殑闂錛屽姩鎵嬩箣鍓嶆湁浜涙兌鎭愩?br>     騫歌繍鐨勬槸錛岀紪璇戣繃紼嬪緢欏哄埄錛屽涓嬶細
     1.緙栬瘧lua 5.1.4
     榪涘叆VS2008鐨勫懡浠よ宸ュ叿錛屽畾浣嶅埌lua鐨勬簮鐮佺洰褰曚笅錛屾墽琛屽懡浠tc\luavs.bat錛屾病浠涔堥棶棰樼殑璇濆緢蹇氨鍙互緙栬瘧濂絣ua錛屽緱鍒發ua51.lib鍜宭ua51.dll銆?br>     2.緙栬瘧luabind
     瑙e帇涓嬭澆鍥炴潵鐨刲uabind鍘嬬緝鍖咃紝鍋囪瑙e帇鍒癲:\luabind-0.8.1\錛孊oost瑙e帇鍒癲:\boost 1_38_0\錛宭ua瑙e帇鍒癲:\lua 5.1.4\
     鍦╒S涓柊寤轟竴涓潤鎬佸簱欏圭洰錛屽皢d:\luabind-0.8.1\src涓嬬殑婧愮爜鍏ㄩ儴娣誨姞鍒伴」鐩腑錛岀劧鍚庡湪欏圭洰涓柊寤簂uabind鍜宭uabind\detail\涓や釜铏氭嫙鏂囦歡澶癸紝瀵瑰簲鐨勫皢d:\luabind-0.8.1\luabind鍜宒:\luabind-0.8.1\luabind\detail涓嬬殑鏂囦歡娣誨姞鍒版枃浠跺す涓?br>     鐒跺悗涓洪」鐩坊鍔犻檮鍔犲寘鍚洰褰曪紝鍙抽敭鐐瑰嚮欏圭洰鑺傜偣->灞炴?>閰嶇疆灞炴?>C\C++鏍囩涓嬶紝鍦ㄩ檮鍔犲寘鍚洰褰曚腑濉叆d:\luabind-0.8.1\錛沝:\boost 1_38_0\k錛沝:\lua 5.1.4\src\銆傜劧鍚庝慨鏀歸」鐩瓧絎﹂泦涓哄瀛楄妭瀛楃闆嗐?br>     鍑嗗灝辯華錛岀敓鎴愰」鐩傚湪鎴戠殑鐜涓紪璇戝緢欏哄埄錛屾病鏈夊嚭鐜頒換浣曢棶棰橈紝鎴愬姛鍚庝細寰楀埌luabind.lib銆?br>
     鎺ヤ笅鏉ュ氨鎸夌収鎯緥鏉ュ啓涓涓猦ello world紼嬪簭浣滀負浣跨敤luabind鐨勭涓姝ャ?br>     鍦╒S涓柊寤轟竴涓帶鍒跺彴欏圭洰錛岀被鍨嬩負DLL錛屽懡鍚嶉」鐩負Hello World錛岀劧鍚庨敭鍏ヤ互涓嬩唬鐮侊細

 1#include "stdafx.h"
 2#include <iostream>
 3#include <luabind/luabind.hpp>
 4
 5void greet()
 6{
 7    std::cout << "hello world!\n";
 8}

 9
10extern "C" int __declspec(dllexport) init(lua_State* L)
11{
12    using namespace luabind;
13
14    open(L);
15
16    module(L)
17    [
18        def("greet"&greet)
19    ];
20
21    return 0;
22}


   娉ㄦ剰錛屽湪Windows鐜涓媔nit鍑芥暟涔嬪墠鏄鍔燺_declspec(dllexport)鎵嶈兘灝嗗嚱鏁板鍑虹殑錛岃宭uabind鐨勬枃妗d腑鐨勭幆澧冩槸linux錛岄粯璁や笉鐢ㄥ姞__declspec(dllexport)涔熷彲浠ュ鍑?灝卞洜涓鴻繖涓姌鑵句簡鎴戝崐澶╂墠鎶奾ello word鎴愬姛榪愯)銆?br>   緙栬瘧欏圭洰錛?璁板緱灝唋uabind.lib鍜宭ua51.lib娣誨姞鍒伴摼鎺ラ夐」涓細欏圭洰灞炴?>榪炴帴鍣?>杈撳叆->闄勫姞渚濊禆鏂囦歡錛屽姞鍏uabind.lib鍜宭ua51.lib)銆?br>   灝唄ello world.dll鏀懼埌lua51.dll鍜宭ua.exe鎵鍦ㄧ殑鐩綍涓嬨?br>   鎵撳紑lua鍛戒護琛岋紝閿叆:
    
   嫻嬭瘯鎴愬姛錛宔njoy銆?/font>



]]>
国产91色综合久久免费分享| 久久频这里精品99香蕉久| 亚洲AV日韩AV永久无码久久| 精品久久人人爽天天玩人人妻| 久久亚洲AV成人无码电影| 久久国产亚洲精品麻豆| 亚洲国产成人久久综合碰| 精品久久久久成人码免费动漫| 欧美午夜精品久久久久免费视| 国产精品成人99久久久久 | 久久精品国产亚洲AV影院| av无码久久久久久不卡网站| 久久久久国产精品嫩草影院 | 麻豆精品久久久久久久99蜜桃| 久久综合给合久久国产免费| 久久久噜噜噜久久| 国产精品久久久久久| 囯产极品美女高潮无套久久久| 久久精品中文字幕有码| 99热成人精品热久久669| 精品伊人久久大线蕉色首页| 久久久黄片| 久久毛片免费看一区二区三区| 国产精品久久午夜夜伦鲁鲁| 久久亚洲国产成人影院| 久久久国产精品| 久久综合五月丁香久久激情| 9999国产精品欧美久久久久久| 国产精品美女久久久| 久久天天躁狠狠躁夜夜avapp| 香蕉久久夜色精品国产2020| 色欲综合久久躁天天躁| 亚洲精品tv久久久久久久久久| 久久久久久A亚洲欧洲AV冫| 久久久久99精品成人片| 久久涩综合| 久久综合视频网| 久久久久无码精品国产不卡| 成人综合伊人五月婷久久| 国产亚洲美女精品久久久久狼| 韩国无遮挡三级久久|