锘??xml version="1.0" encoding="utf-8" standalone="yes"?>理论片午午伦夜理片久久,AV色综合久久天堂AV色综合在,91精品日韩人妻无码久久不卡
http://www.shnenglu.com/sunraiing9/category/1806.html涓撴敞C++鎶鏈? 鍦ㄨ繖閲屽啓涓嬭嚜宸辯殑瀛︿範(fàn)蹇?jī)寰?鎰熸?zhèn)?
鍜屽ぇ瀹惰璁?鍏卞悓榪涙錛堟榪庢壒璇勶紒錛侊紒錛?/description>zh-cn Mon, 19 May 2008 14:48:26 GMT Mon, 19 May 2008 14:48:26 GMT 60 WindowsMediaPlayer鎺т歡鐨勪嬌鐢?/title> http://www.shnenglu.com/sunraiing9/articles/14456.html@鐜嬩竴浼?/dc:creator>@鐜嬩竴浼?/author>Tue, 31 Oct 2006 16:36:00 GMT http://www.shnenglu.com/sunraiing9/articles/14456.html http://www.shnenglu.com/sunraiing9/comments/14456.html http://www.shnenglu.com/sunraiing9/articles/14456.html#Feedback 0 http://www.shnenglu.com/sunraiing9/comments/commentRss/14456.html http://www.shnenglu.com/sunraiing9/services/trackbacks/14456.html
WindowsMediaPlayer鎺т歡鐨勪嬌鐢?/span>
By聽(tīng) 瀛欐?zhèn)熃I?鍙戣〃浜?2006-3-15 14:00:00聽(tīng)
[鍩烘湰灞炴聽(tīng)銆聽(tīng) URL:String;聽(tīng)鎸囧畾濯掍綋浣嶇疆錛屾湰鏈烘垨緗戠粶鍦板潃聽(tīng) uiMode:String;聽(tīng)鎾斁鍣ㄧ晫闈㈡ā寮忥紝鍙負(fù)Full,聽(tīng)Mini,聽(tīng)None,聽(tīng)I(yíng)nvisible聽(tīng) playState:integer;聽(tīng)鎾斁鐘舵侊紝1=鍋滄錛?=鏆傚仠錛?=鎾斁錛?=姝e湪緙撳啿錛?=姝e湪榪炴帴錛?0=鍑嗗灝辯華聽(tīng) enableContextMenu:Boolean;聽(tīng)鍚敤/紱佺敤鍙抽敭鑿滃崟聽(tīng) fullScreen:boolean;聽(tīng)鏄惁鍏ㄥ睆鏄劇ず聽(tīng)
聽(tīng)[controls]聽(tīng)聽(tīng)鎾斁鍣ㄥ熀鏈帶鍒堵?br />controls.play;聽(tīng)鎾斁聽(tīng) controls.pause;聽(tīng)鏆傚仠聽(tīng) controls.stop;聽(tīng)鍋滄聽(tīng) controls.currentPosition:double;聽(tīng)褰撳墠榪涘害聽(tīng) controls.currentPositionString:string;聽(tīng)褰撳墠榪涘害錛屽瓧絎︿覆鏍煎紡銆傚鈥?0:23鈥澛?br />controls.fastForward;聽(tīng)蹇繘聽(tīng) controls.fastReverse;聽(tīng)蹇聽(tīng) controls.next;聽(tīng)涓嬩竴鏇猜?br />controls.previous;聽(tīng)涓婁竴鏇猜?/p>
聽(tīng)[settings]鎾斁鍣ㄥ熀鏈緗?br />settings.volume:integer;聽(tīng)闊抽噺錛?-100聽(tīng) settings.autoStart:Boolean;聽(tīng)鏄惁鑷姩鎾斁聽(tīng) settings.mute:Boolean;聽(tīng)鏄惁闈?rùn)闊陈?tīng) settings.playCount:integer;聽(tīng)鎾斁嬈℃暟聽(tīng)
聽(tīng)[currentMedia]聽(tīng)褰撳墠濯掍綋灞炴?br />currentMedia.duration:double;聽(tīng)濯掍綋鎬婚暱搴β?br />currentMedia.durationString:string;聽(tīng)濯掍綋鎬婚暱搴︼紝瀛楃涓叉牸寮忋傚鈥?3:24鈥澛?br />currentMedia.getItemInfo(const聽(tīng)string);聽(tīng)鑾峰彇褰撳墠濯掍綋淇℃伅"Title"=濯掍綋鏍囬錛?Author"=鑹烘湳瀹訛紝"Copyright"=鐗堟潈淇℃伅錛?Description"=濯掍綋鍐呭鎻忚堪錛?Duration"=鎸佺畫(huà)鏃墮棿錛堢錛夛紝"FileSize"=鏂囦歡澶у皬錛?FileType"=鏂囦歡綾誨瀷錛?sourceURL"=鍘熷鍦板潃聽(tīng) currentMedia.setItemInfo(const聽(tīng)string);聽(tīng)閫氳繃灞炴у悕璁劇疆濯掍綋淇℃伅聽(tīng) currentMedia.name:string;聽(tīng)鍚屄?tīng)currentMedia.getItemInfo("Title")聽(tīng)
聽(tīng)[currentPlaylist]聽(tīng)褰撳墠鎾斁鍒楄〃灞炴?br />currentPlaylist.count:integer;聽(tīng)褰撳墠鎾斁鍒楄〃鎵鍖呭惈濯掍綋鏁奧?br />currentPlaylist.Item[integer];聽(tīng)鑾峰彇鎴栬緗寚瀹氶」鐩獟浣撲俊鎭?/p>
聽(tīng)
]]> CSliderctrl綾葷殑鎴愬憳鍑芥暟 http://www.shnenglu.com/sunraiing9/articles/14451.html@鐜嬩竴浼?/dc:creator>@鐜嬩竴浼?/author>Tue, 31 Oct 2006 15:06:00 GMT http://www.shnenglu.com/sunraiing9/articles/14451.html http://www.shnenglu.com/sunraiing9/comments/14451.html http://www.shnenglu.com/sunraiing9/articles/14451.html#Feedback 0 http://www.shnenglu.com/sunraiing9/comments/commentRss/14451.html http://www.shnenglu.com/sunraiing9/services/trackbacks/14451.html CSliderctrl綾葷殑鎴愬憳鍑芥暟 浣滆咃細(xì)鏈煡 csliderctrl綾葷殑鎴愬憳鍑芥暟錛屽彲浠ュ杞ㄩ亾鏉¤繘琛屾煡璇㈠拰璁劇疆錛?br /> 鐢╣etrange鍜宻etrange鏉ユ煡璇㈠拰璁劇疆杞ㄩ亾鏉$殑鑼冨洿錛岀己鐪佺殑鑼冨洿鏄?-100錛庡嚱鏁扮殑澹版槑涓?br /> void getrange( int& nmin, int& nmax ) const; void setrange( int nmin, int nmax, bool bredraw = false ); 鍙傛暟nmin鍜宯max鍒嗗埆鏄渶灝忓拰鏈澶у鹼紝鍙傛暟bredraw涓簍rue鏃跺皢閲嶇粯鎺т歡錛?br /> 鐢╣etpos鍜宻etpos鏉ユ煡璇㈠拰璁劇疆杞ㄩ亾鏉$殑褰撳墠鍊鹼紟鍑芥暟鐨勫0鏄庝負(fù) int getpos( ) const; void setpos( int npos ); 鐢╣etlinesize鍜宻etlinesize鏉ユ煡璇㈠拰璁劇疆鍦ㄦ寜涓涓嬪乏綆ご閿垨鍙崇澶撮敭鏃舵粦灝虹殑縐誨姩閲忥紝璇ョЩ鍔ㄩ噺鐨勭己鐪佸兼槸1涓崟浣嶏紟鍑芥暟鐨勫0鏄庝負(fù) int getlinesize( ) const; int setlinesize( int nsize ); 鐢╣etpagesize鍜宻etpagesize鏉ユ煡璇㈠拰璁劇疆婊戝昂鐨勫潡縐誨姩閲忥紝鍧楃Щ鍔ㄩ噺鏄寚褰撴寜涓媝gup鎴杙gdown閿椂婊戝昂鐨勭Щ鍔ㄩ噺錛庡嚱鏁扮殑澹版槑涓?br /> int getpagesize( ) const; int setpagesize( int nsize ); 鐢╯etticfreq璁劇疆杞ㄩ亾鏉$殑鍒誨害鐨勯搴︼紟緙虹渷鐨勯搴︽槸姣忎釜鍗曚綅閮芥湁涓涓埢搴︼紝鍦ㄨ寖鍥磋緝澶ф椂錛屼負(fù)浜?jiǎn)鋴慑堈d害涓嶈嚦浜庤繃瀵嗭紝闇瑕佽皟鐢ㄨ鍑芥暟璁劇疆涓涓悎鐞嗙殑棰戝害錛庡嚱鏁扮殑澹版槑涓?br /> void setticfreq( int nfreq ); 鍙傛暟nfreq璇存槑浜?jiǎn)涓や釜鍒诲害涔嬮棿鐨勯棿闅斿Q?br /> 鐢ㄥ嚱鏁皊ettic鏉ュ湪鎸囧畾浣嶇疆璁劇疆鍒誨害錛巜indows鑷姩鏄劇ず鐨勫埢搴︽槸鍧囧寑鐨勶紝鍒╃敤璇ュ嚱鏁板彲浠ヤ漢涓鴻緗笉鍧囧寑鐨勫埢搴︼紝璇ュ嚱鏁扮殑澹版槑涓?br /> bool settic( int ntic ); 鐢ㄥ嚱鏁癱leartics鏉ユ竻闄ゆ墍鏈夌殑鍒誨害錛庤鍑芥暟鐨勫0鏄庝負(fù) void cleartics( bool bredraw = false ); ]]> SetTimer鍑芥暟 http://www.shnenglu.com/sunraiing9/articles/14449.html@鐜嬩竴浼?/dc:creator>@鐜嬩竴浼?/author>Tue, 31 Oct 2006 14:52:00 GMT http://www.shnenglu.com/sunraiing9/articles/14449.html http://www.shnenglu.com/sunraiing9/comments/14449.html http://www.shnenglu.com/sunraiing9/articles/14449.html#Feedback 0 http://www.shnenglu.com/sunraiing9/comments/commentRss/14449.html http://www.shnenglu.com/sunraiing9/services/trackbacks/14449.html SetTimer鍑芥暟
2006騫?9鏈?7鏃?鏄熸湡鍥?15:10
浠涔堟椂鍊欐垜浠渶瑕佺敤鍒癝etTimer鍑芥暟鍛紵褰撲綘闇瑕佹瘡涓竴孌墊椂闂存墽琛屼竴浠朵簨鐨勭殑鏃跺欐墭鏋?瑜傝偋etTimer鍑芥暟浜?jiǎn)銆?浣跨敤瀹氭椂鍣ㄧ殑鏂規(guī)硶姣旇緝綆鍗曪紝閫氬父鍛婅瘔WINDOWS涓涓椂闂撮棿闅旓紝鐒跺悗WINDOWS浠ユ鏃墮棿闂撮殧鍛ㄦ湡鎬цЕ鍙戠▼搴忋傞氬父鏈変袱縐嶆柟娉曟潵瀹炵幇錛氬彂閫乄M_TIMER娑堟伅鍜岃皟鐢ㄥ簲鐢ㄧ▼搴忓畾涔夌殑鍥炶皟鍑芥暟銆?
聽(tīng)
1.1 鐢╓M_TIMER鏉ヨ緗畾鏃跺櫒
鍏堣鐪婼etTimer榪欎釜API鍑芥暟鐨勫師鍨?
UINT_PTR SetTimer( 聽(tīng) HWND hWnd,聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // 紿楀彛鍙ユ焺 聽(tīng) UINT_PTR nIDEvent,聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // 瀹氭椂鍣↖D錛屽涓畾鏃跺櫒鏃訛紝鍙互閫氳繃璇D鍒ゆ柇鏄摢涓畾鏃跺櫒 聽(tīng) UINT uElapse,聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // 鏃墮棿闂撮殧,鍗曚綅涓烘縐?br />聽(tīng) TIMERPROC lpTimerFunc聽(tīng)聽(tīng) // 鍥炶皟鍑芥暟 );
渚嬪 SetTimer(m_hWnd,1,1000,NULL); //涓涓?縐掕Е鍙戜竴嬈$殑瀹氭椂鍣?br />鍦∕FC紼嬪簭涓璖etTimer琚皝瑁呭湪CWnd綾諱腑錛岃皟鐢ㄥ氨涓嶇敤鎸囧畾紿楀彛鍙ユ焺浜?/p>
浜庢槸SetTimer鍑芥暟鐨勫師鍨嬪彉?shù)负锛?xì)
UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))
褰撲嬌鐢⊿etTimer鍑芥暟鐨勬椂鍊欙紝灝變細(xì)鐢熸垚涓涓鏃跺櫒銆傚嚱鏁頒腑nIDEvent鎸囩殑鏄鏃跺櫒鐨勬爣璇嗭紝涔熷氨鏄悕瀛椼俷Elapse鎸囩殑鏄椂闂撮棿闅旓紝涔熷氨鏄瘡闅斿闀挎椂闂磋Е鍙戜竴嬈′簨浠躲傜涓変釜鍙傛暟鏄竴涓洖璋冨嚱鏁幫紝鍦ㄨ繖涓嚱鏁伴噷錛屾斁鍏ヤ綘鎯寵鍋氱殑浜嬫儏鐨勪唬鐮侊紝浣犲彲浠ュ皢瀹冭瀹氫負(fù)NULL錛屼篃灝辨槸浣跨敤緋葷粺榛樿鐨勫洖璋冨嚱鏁幫紝緋葷粺榛樿璁ょ殑鏄痮nTime鍑芥暟銆傝繖涓嚱鏁版庝箞鐢熸垚鐨勫憿錛熶綘闇瑕佸湪闇瑕佽鏃跺櫒鐨勭被鐨勭敓鎴恛nTime鍑芥暟錛氬湪ClassWizard閲岋紝閫夋嫨闇瑕佽鏃跺櫒鐨勭被錛屾坊鍔燱M_TIME娑堟伅鏄犲皠錛屽氨鑷姩鐢熸垚onTime鍑芥暟浜?jiǎn)銆傜劧鍚庡湪鍑芥暟閲屾坊鍔犱唬鐮侊紝璁╀唬鐮佸疄鐜板姛鑳姐傛瘡闅斾竴孌墊椂闂村氨浼?xì)鑷姩鎵ц涓嬈°?
渚嬶細(xì)
SetTimer(1,1000,NULL);
1:璁℃椂鍣ㄧ殑鍚嶇О錛?
1000錛氭椂闂撮棿闅旓紝鍗曚綅鏄縐掞紱
NULL:浣跨敤onTime鍑芥暟銆?
褰撲笉闇瑕佽鏃跺櫒鐨勬椂鍊欒皟鐢↘illTimer(nIDEvent);
渚嬪錛欿illTimer(1);
1.2 璋冪敤鍥炶皟鍑芥暟
姝ゆ柟娉曢鍏堝啓涓涓涓嬫牸寮忕殑鍥炶皟鍑芥暟
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime); 鐒跺悗鍐嶇敤SetTimer(1,100,TimerProc)鍑芥暟鏉ュ緩涓涓畾鏃跺櫒錛岀涓変釜鍙傛暟灝辨槸鍥炶皟鍑芥暟鍦板潃銆?/p>
浜? 鎴栬浣犱細(xì)闂紝濡傛灉鎴戣鍔犲叆涓や釜鎴栬呬袱涓互涓婄殑 timer鎬庝箞鍔烇紵
緇х畫(huà)鐢⊿etTimer鍑芥暟鍚э紝涓婃鐨則imer鐨処D鏄?錛岃繖嬈″彲浠ユ槸2錛?錛?銆傘傘傘?
SetTimer(2,1000,NULL);
SetTimer(3,500,NULL);
鍡紝W(xué)INDOWS浼?xì)鍗忚皟浠栦滑鐨勩傚綋鐒秓nTimer鍑芥暟浣撲篃瑕佸彂鐢熷彉鍖栵紝瑕佸湪鍑芥暟浣撳唴娣誨姞姣忎竴涓猼imer鐨勫鐞嗕唬鐮侊細(xì)
onTimer(nIDEvent)
{
switch(nIDEvent)
{
case 1:........;
break;
case 2:.......;
break;
case 3:......;
break;
}
}
聽(tīng)
聽(tīng)
鍦∕FC鐢ㄤ嬌鐢═imer 鍙互鍏堢敤MFC Class Wizard緇機(jī)XxxxDlg娣誨姞涓涓猈M_TIMER鐨勬秷鎭搷搴斿嚱鏁?/p>
鍦╲oid CLXWGDlg::OnTimer(UINT nIDEvent)涓啓鍏ユ墽琛岀殑鎿嶄綔聽(tīng) 鐒跺悗鍦ㄥ搷搴旂殑鍑芥暟閲岀敤
聽(tīng)SetTimer(1,100,NULL)璋冪敤;
]]> CToolBar鐨勪竴浜涚畝鍗曠敤娉?/title> http://www.shnenglu.com/sunraiing9/articles/14004.html@鐜嬩竴浼?/dc:creator>@鐜嬩竴浼?/author>Sun, 22 Oct 2006 05:45:00 GMT http://www.shnenglu.com/sunraiing9/articles/14004.html http://www.shnenglu.com/sunraiing9/comments/14004.html http://www.shnenglu.com/sunraiing9/articles/14004.html#Feedback 0 http://www.shnenglu.com/sunraiing9/comments/commentRss/14004.html http://www.shnenglu.com/sunraiing9/services/trackbacks/14004.html 1) Right click Solution Explorer -> Add -> Resource -> Tool Bar -> New. This will open into Tool Bar Editor.
2)You can Create/Paint Buttons here. Make sure you change the default Ids of these buttons to some proper usable ids. (Use Property Explorer for this), this will create a .bmp image in resources. (Lets say, The Tool Bar is 鈥楾DR_TOOLBAR1鈥?and the two buttons are 鈥業(yè)DC_TBUTTON1鈥?and 鈥業(yè)DC_TBUTTON2鈥?)
3)Now go to the .h for dialog(You can add a class to a dialog) on which toolbar need to be placed. Declare a 鈥楥ToolBar鈥?Object
CToolBar m_FirstToolBar
4)Now on the .cpp file of the dialog, in 鈥極nInitDialog()鈥?add following code;(You Can add OnInitDialog event to the directly by declaring it in .h file added and using it in .cpp file)
if(!m_FirstToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_FirstToolBar.LoadToolBar(IDR_TOOLBAR1))
{
EndDialog(IDCANCEL);
}
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,0);
4.1. Here you can see the various attributes set for the toolbar in 鈥楥reateEx(...)鈥?like 鈥楾BSTYLE_FLAT鈥?for flat look of toolbar buttons;
4.2 In 鈥楲oadToolBar(...)鈥?the Resource created for the toolbar is used. This maps our toolbar object 鈥榤_FirstToolBar鈥?with resource 鈥業(yè)DR_TOOLBAR1鈥?
4.3 鈥楻epositionBars()鈥?is used to place the toolbar on the dialog.
5) 鈥楳oveWindow()鈥?can be used to place the toolbar on the desired position.
m_FirstToolBar.MoveWindow( 50, 0,100, 100, 1 );
Now if you have finalized the place where you want to place the tool bar you can put it there using MoveWindow(...), my suggestion is to put a label in the design of dialog at place you want to put you toolbar; Then at run time get the position of this label and place the toolbar there using MoveWindow(...)
If you want to place this toolbar on Top Left and dynamically move all the controls accordingly and increase the dialog dimensions refer the article on this site I suggested above.
6)This is how the buttons of Tool Bar can be made visible/invisible
m_FirstToolBar.GetToolBarCtrl().HideButton(IDC_TBUTTON1, TRUE);
Notice that we have used the 鈥業(yè)DC_TBUTTON1鈥?which we declared at the time of creating toolbar resource.
7) Similarly
m_FirstToolBar.GetToolBarCtrl().EnableButton(IDC_TBUTTON1,false)
can be used to disable a button.
8) To handle Click events: 8.1 Add following line to BEGIN_MESSAGE_MAP()
ON_COMMAND(IDC_TBUTTON1,OnToolBarButton1)
8.2 Write the desired code in .cpp file
FirstToolBarDialog:: OnToolBarButton1()
{
- - -
- - -
}
聽(tīng)
]]>MFC DLL鍚戝(鎽? http://www.shnenglu.com/sunraiing9/articles/13739.html@鐜嬩竴浼?/dc:creator>@鐜嬩竴浼?/author>Mon, 16 Oct 2006 00:42:00 GMT http://www.shnenglu.com/sunraiing9/articles/13739.html http://www.shnenglu.com/sunraiing9/comments/13739.html http://www.shnenglu.com/sunraiing9/articles/13739.html#Feedback 0 http://www.shnenglu.com/sunraiing9/comments/commentRss/13739.html http://www.shnenglu.com/sunraiing9/services/trackbacks/13739.html 涓銆丏LL鐨勪笉鍚岀被鍨?br />聽(tīng)聽(tīng)聽(tīng) 浣跨敤MFC鍙互鐢熸垚涓ょ綾誨瀷鐨凞LL錛歁FC鎵╁睍DLL鍜屽父瑙凞LL銆傚父瑙凞LL鏈夊彲浠ュ垎涓哄姩鎬佽繛鎺ュ拰闈?rùn)鎬佽繛鎺ャ俈isual C++榪樺彲浠ョ敓鎴怶IN32 DLL錛屼絾涓嶆槸榪欓噷璁ㄨ鐨勪富瑕佸璞°?br />1銆丮FC鎵╁睍DLL 聽(tīng)聽(tīng) 姣忎釜DLL閮芥湁鏌愮綾誨瀷鐨勬帴鍙o細(xì)鍙橀噺銆佹寚閽堛佸嚱鏁般佸鎴風(fēng)▼搴忚闂殑綾匯傚畠浠殑浣滅敤鏄瀹㈡埛紼嬪簭浣跨敤DLL錛孧FC鎵╁睍DLL鍙互鏈塁++鐨勬帴鍙c備篃灝辨槸瀹冨彲浠ュ鍑篊++綾葷粰瀹㈡埛绔傚鍑虹殑鍑芥暟鍙互浣跨敤C++/MFC鏁版嵁綾誨瀷鍋氬弬鏁版垨榪斿洖鍊鹼紝瀵煎嚭涓涓被鏃跺鎴風(fēng)鑳藉垱寤虹被瀵硅薄鎴栬呮淳鐢熻繖涓被銆傚悓鏃訛紝鍦―LL涓篃鍙互浣跨敤DLL鍜孧FC銆?br />聽(tīng)聽(tīng) Visual C++浣跨敤鐨凪FC綾誨簱涔熸槸淇濆瓨鍦ㄤ竴涓狣LL涓紝MFC鎵╁睍DLL鍔ㄦ佽繛鎺ュ埌MFC浠g爜搴撶殑DLL錛屽鎴風(fēng)▼搴忎篃蹇呴』瑕佸姩鎬佽繛鎺ュ埌MFC浠g爜搴撶殑DLL銆傦紙榪欓噷璋堝埌鐨勪袱涓狣LL錛屼竴涓槸鎴戜滑鑷繁緙栧啓鐨凞LL錛屼竴涓MFC綾誨簱鐨凞LL錛夌幇鍦∕FC浠g爜搴撶殑DLL涔熷瓨鍦ㄥ涓増鏈紝瀹㈡埛紼嬪簭鍜屾墿灞旸LL閮藉繀欏諱嬌鐢ㄧ浉鍚岀増鏈殑MFC浠g爜DLL銆傛墍浠ヤ負(fù)浜?jiǎn)璁㎝FC鎵╁睍DLL鑳藉緢濂界殑宸ヤ綔錛屾墿灞旸LL鍜屽鎴風(fēng)▼搴忛兘蹇呴』鍔ㄦ佽繛鎺ュ埌MFC浠g爜搴揇LL銆傝岃繖涓狣LL蹇呴』鍦ㄥ鎴風(fēng)▼搴忚繍琛岀殑璁$畻鏈轟笂銆?br />2銆佸父瑙凞LL 聽(tīng)聽(tīng) 浣跨敤MFC鎵╁睍DLL鐨勪竴涓棶棰樺氨鏄疍LL浠呰兘鍜孧FC瀹㈡埛紼嬪簭涓璧峰伐浣滐紝濡傛灉闇瑕佷竴涓嬌鐢ㄦ洿騫挎硾鐨凞LL錛屾渶濂介噰鐢ㄥ父瑙凞LL錛屽洜涓哄畠涓嶅彈MFC鐨勬煇浜涢檺鍒躲傚父瑙凞LL涔熸湁緙虹偣錛氬畠涓嶈兘鍜屽鎴風(fēng)▼搴忓彂閫佹寚閽堟垨MFC媧劇敓綾誨拰瀵硅薄鐨勫紩鐢ㄣ備竴鍙ヨ瘽灝辨槸甯歌DLL鍜屽鎴風(fēng)▼搴忕殑鎺ュ彛涓嶈兘浣跨敤MFC錛屼絾鍦―LL鍜屽鎴風(fēng)▼搴忕殑鍐呴儴榪樻槸鍙互浣跨敤MFC銆?br />聽(tīng)聽(tīng) 褰撳湪甯歌DLL鐨勫唴閮ㄤ嬌鐢∕FC浠g爜搴撶殑DLL鏃訛紝鍙互鏄姩鎬佽繛鎺?闈?rùn)鎬佽繛鎺ャ傚鏋滄槸鍔ㄦ佽繛鎺ワ紝涔熷氨鏄父瑙凞LL闇瑕佺殑MFC浠g爜娌℃湁鏋勫緩鍒癉LL涓紝榪欑鎯呭喌鏈夌偣鍜屾墿灞旸LL綾諱技錛屽湪DLL榪愯鐨勮綆楁満涓婂繀欏昏MFC浠g爜搴撶殑DLL銆傚鏋滄槸闈?rùn)鎬佽繛鎺ワ紝甯歌DLL閲岄潰宸茬粡鍖呭惈浜?jiǎn)闇瑕佺殑MFC浠g爜錛岃繖鏍稤LL鐨勪綋縐皢姣旇緝澶э紝浣嗗畠鍙互鍦ㄦ病鏈塎FC浠g爜搴揇LL鐨勮綆楁満涓婃甯歌繍琛屻?br /> 浜屻佸緩绔婦LL 聽(tīng)聽(tīng)聽(tīng) 鍒╃敤Visual C++鎻愪緵鐨勫悜瀵煎姛鑳藉彲浠ュ緢瀹規(guī)槗寤虹珛涓涓笉瀹屾垚浠諱綍瀹炶川浠誨姟鐨凞LL錛岃繖閲屽氨涓嶅璁蹭簡(jiǎn)錛屼富瑕佺殑浠誨姟鏄浣曠粰DLL娣誨姞鍔熻兘錛屼互鍙?qiáng)鍦ㄥ鎴方E嬪簭涓埄鐢ㄨ繖涓狣LL 1銆佸鍑虹被 聽(tīng)聽(tīng) 鐢ㄥ悜瀵煎緩绔嬪ソ妗嗘灦鍚庯紝灝卞彲浠ユ坊鍔犻渶瑕佸鍑虹被鐨?cpp .h鏂囦歡鍒癉LL涓潵錛屾垨鑰呯敤鍚戝鍒涘緩C++ Herder File/C++ Source File銆備負(fù)浜?jiǎn)鑳藉鍑簶q欎釜綾伙紝鍦ㄧ被澹版槑鐨勬椂鍊欒鍔犫淿declspec(dllexport)鈥?濡傦細(xì) class _declspec(dllexport) CMyClass { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) ...//澹版槑 } 濡傛灉鍒涘緩鐨凪FC鎵╁睍DLL錛屽彲浠ヤ嬌鐢ㄥ畯錛欰FX_EXT_CLASS: class AFX_EXT_CLASS CMyClass { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) ...//澹版槑 } 榪欐牱瀵煎嚭綾葷殑鏂規(guī)硶鏄渶綆鍗曠殑錛屼篃鍙互閲囩敤.def鏂囦歡瀵煎嚭錛岃繖閲屾殏涓嶈璋堛?br />2銆佸鍑哄彉閲忋佸父閲忋佸璞?br />聽(tīng)聽(tīng) 寰堝鏃跺欎笉闇瑕佸鍑轟竴涓被錛屽彲浠ヨDLL瀵煎嚭涓涓彉閲忋佸父閲忋佸璞★紝瀵煎嚭瀹冧滑鍙渶瑕佽繘琛岀畝鍗曠殑澹版槑錛歘declspec(dllexport) int MyInt; 聽(tīng) _declspec(dllexport) extern const COLORREF MyColor=RGB(0,0,0); 聽(tīng) _declspec(dllexport) CRect rect(10,10,20,20); 瑕佸鍑轟竴涓父閲忔椂蹇呴』浣跨敤鍏抽敭瀛梕xtern錛屽惁鍒欎細(xì)鍙戠敓榪炴帴閿欒銆?br />娉ㄦ剰錛氬鏋滃鎴風(fēng)▼搴忚瘑鍒繖涓被鑰屼笖鏈夎嚜宸辯殑澶存枃浠訛紝鍒欏彧鑳藉鍑轟竴涓被瀵硅薄銆傚鏋滃湪DLL涓垱寤轟竴涓被錛屽鎴風(fēng)▼搴忎笉浣跨敤澶存枃浠跺氨鏃犳硶璇嗗埆榪欎釜綾匯?br />聽(tīng) 褰撳鍑轟竴涓璞℃垨鑰呭彉閲忔椂錛岃澆鍏LL鐨勬瘡涓鎴風(fēng)▼搴忛兘鏈変竴涓嚜宸辯殑鎷瘋礉銆備篃灝辨槸濡傛灉涓や釜紼嬪簭浣跨敤鐨勬槸鍚屼竴涓狣LL錛屼竴涓簲鐢ㄧ▼搴忔墍鍋氱殑淇敼涓嶄細(xì)褰卞搷鍙︿竴涓簲鐢ㄧ▼搴忋?br />聽(tīng) 鎴戜滑鍦ㄥ鍑虹殑鏃跺欏彧鑳藉鍑篋LL涓殑鍏ㄥ眬鍙橀噺鎴栧璞★紝鑰屼笉鑳藉鍑哄眬閮ㄧ殑鍙橀噺鍜屽璞★紝鍥犱負(fù)瀹冧滑榪囦簡(jiǎn)浣滅敤鍩熶篃灝變笉瀛樺湪浜?jiǎn)锛岄偅鏍稤LL灝變笉鑳芥甯稿伐浣溿傚錛?br />MyFunction() { 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) _declspec(dllexport) int MyInt; 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) _declspec(dllexport) CMyClass object; } 3銆佸鍑哄嚱鏁?br />瀵煎嚭鍑芥暟鍜屽鍑哄彉閲?瀵硅薄綾諱技錛屽彧瑕佹妸_declspec(dllexport)鍔犲埌鍑芥暟鍘熷瀷寮濮嬬殑浣嶇疆錛?br />_declspec(dllexport) int MyFunction(int); 濡傛灉鏄父瑙凞LL錛屽畠?yōu)畣鍜孋鍐欑殑紼嬪簭浣跨敤錛屽0鏄庢柟寮忓涓嬶細(xì) extern "c" _declspec(dllexport) int MyFunction(int); 瀹炵幇錛?br />extern "c" _declspec(dllexport) int MyFunction(int x) { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) ...//鎿嶄綔 } 濡傛灉鍒涘緩鐨勬槸鍔ㄦ佽繛鎺ュ埌MFC浠g爜搴揇LL鐨勫父瑙凞LL錛屽垯蹇呴』鎻掑叆AFX_MANAGE_STATE浣滀負(fù)瀵煎嚭鍑芥暟鐨勯琛岋紝鍥犳瀹氫箟濡備笅錛?br />extern "c" _declspec(dllexport) int MyFunction(int x) { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) AFX_MANAGE_STATE(AfxGetStaticModuleState()); 聽(tīng)聽(tīng)聽(tīng)聽(tīng) ...//鎿嶄綔 } 鏈夋椂鍊欎負(fù)浜?jiǎn)瀹夊叏钃v瑙侊紝鍦ㄦ瘡涓父瑙凞LL閲岄兘鍔犱笂錛屼篃涓嶄細(xì)鏈変換浣曢棶棰橈紝鍙槸鍦ㄩ潤(rùn)鎬佽繛鎺ョ殑鏃跺欒繖涓畯鏃犳晥鑰屽凡銆傝繖鏄鍑哄嚱鏁扮殑鏂規(guī)硶錛岃浣忓彧鏈塎FC鎵╁睍DLL鎵嶈兘璁╁弬鏁板拰榪斿洖鍊間嬌鐢∕FC鐨勬暟鎹被鍨嬨?br />4銆佸鍑烘寚閽?br />瀵煎嚭鎸囬拡鐨勬柟寮忓涓嬶細(xì) _declspec(dllexport) int *pint; _declspec(dllexport) CMyClass object = new CMyClass; 濡傛灉澹版槑鐨勬椂鍊欏悓鏃跺垵濮嬪寲浜?jiǎn)鎸囬拡锛尀闇瑕佹壘鍒板悎閫傜殑鍦版柟綾婚噴鏀炬寚閽堛傚湪鎵╁睍DLL涓湁涓嚱鏁癉llMain()銆傦紙娉ㄦ剰鍑芥暟鍚嶄腑鐨勪袱涓猯瑕佹槸灝忓啓瀛楁瘝錛夛紝鍙互鍦ㄨ繖涓嚱鏁頒腑澶勭悊鎸囬拡錛?br /># include "MyClass.h" _declspec(dllexport) CMyClass *pobject = new CMyClass; DllMain(HINSTANCE hInstance,DWORD dwReason,LPVOID lpReserved) { 聽(tīng)聽(tīng)聽(tīng) if(dwReason == DLL_PROCESS_ATTACH) 聽(tīng)聽(tīng)聽(tīng) { 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) .....// 聽(tīng)聽(tīng)聽(tīng) } 聽(tīng)聽(tīng)聽(tīng) else if(dwReason == DLL_PROCESS_DETACH) 聽(tīng)聽(tīng)聽(tīng) { 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) delete pobject; 聽(tīng)聽(tīng)聽(tīng) } } 甯歌DLL鏈変竴涓粠CWinApp媧劇敓鐨勭被瀵硅薄澶勭悊DLL鐨勫紑鍜屽叧錛屽彲浠ヤ嬌鐢ㄧ被鍚戝娣誨姞I(yíng)nitInstance/ExitInstance鍑芥暟銆?br />int CMyDllApp::ExitInstance() { 聽(tīng)聽(tīng)聽(tīng) delete pobject; 聽(tīng)聽(tīng)聽(tīng) return CWinApp::ExitInstance(); } 涓夈佸湪瀹㈡埛紼嬪簭涓嬌鐢―LL 聽(tīng)聽(tīng)聽(tīng) 緙栬瘧涓涓狣LL鏃跺皢鍒涘緩涓や釜鏂囦歡.dll鏂囦歡鍜?lib鏂囦歡銆傞鍏堝皢榪欎袱涓枃浠跺鍒跺埌瀹㈡埛紼嬪簭欏圭洰鐨勬枃浠跺す閲岋紝榪欓噷闇瑕佹敞鎰廌LL鍜屽鎴風(fēng)▼搴忕殑鐗堟湰闂錛屽敖閲忎嬌鐢ㄧ浉鍚岀殑鐗堟湰錛岄兘浣跨敤RELEASE鎴栬呴兘鏄疍EBUG鐗堟湰銆?br />聽(tīng)聽(tīng) 鎺ョ潃灝遍渶瑕佸湪瀹㈡埛紼嬪簭涓緗甃IB鏂囦歡錛屾墦寮Project Settings--->Link--->Object/library Modules涓緭鍏IB鐨勬枃浠跺悕鍜岃礬寰勩傚錛欴ebug/SampleDll.lib銆傞櫎浜?jiǎn)DLL鍜孡IB鏂囦歡澶栵紝瀹㈡埛紼嬪簭闇瑕侀拡瀵瑰鍑虹被銆佸嚱鏁般佸璞″拰鍙橀噺鐨勫ご鏂囦歡錛岀幇鍦ㄨ繘琛屽鍏ユ坊鍔犵殑鍏抽敭瀛楀氨鏄細(xì)_declspec(dllimport)錛屽錛?br />_declspec(dllimport) int MyFunction(int); _declspec(dllimport) int MyInt; _declspec(dllimport) CMyClass object; extern "C" _declspec(dllimport) int MyFunction(int); 鍦ㄦ湁鐨勬椂鍊欎負(fù)浜?jiǎn)瀵煎叆绫诲Q岃鎶婄浉搴旂被鐨勫ご鏂囦歡娣誨姞鍒板鎴風(fēng)▼搴忎腑錛屼笉鍚岀殑鏄淇敼綾誨0鏄庣殑鏍囧織錛?br />class _declspec(dllimport) CMyClass錛屽鏋滃垱寤虹殑鏄墿灞旸LL錛屼袱涓綅緗兘鏄? class AFX_EXT_CLASS CMyClass銆?br /> 浣跨敤DLL鐨勪竴涓瘮杈冧弗閲嶇殑闂灝辨槸緙栬瘧鍣ㄤ箣闂寸殑鍏煎鎬ч棶棰樸備笉鍚岀殑緙栬瘧鍣ㄥc++鍑芥暟鍦ㄤ簩榪涘埗綰у埆鐨勫疄鐜版柟寮忔槸涓嶅悓鐨勩傛墍浠ュ鍩轟簬C++鐨凞LL錛屽鏋滅紪璇戝櫒涓嶅悓灝辨湁寰堥夯鐑?chǔ)鐨勩傚鏋滃垱寤虹殑鏄疢FC鎵╁睍DLL錛屽氨涓嶄細(xì)瀛樺湪闂錛屽洜涓哄畠鍙兘琚姩鎬佽繛鎺ュ埌MFC鐨勫鎴峰簲鐢ㄧ▼搴忋傝繖閲屼笉鏄湰鏂囪璁虹殑閲嶇偣銆?br /> 涓銆侀噸鏂扮紪璇戦棶棰?br />鎴戜滑鍏堟潵鐪嬩竴涓湪瀹為檯涓彲鑳介亣鍒扮殑闂錛?br />聽(tīng)聽(tīng)聽(tīng) 姣斿鐜板湪寤虹珛濂戒簡(jiǎn)涓涓狣LL瀵煎嚭浜?jiǎn)CMyClass綾伙紝瀹㈡埛涔熻兘姝e父浣跨敤榪欎釜DLL錛屽亣璁綜MyClass瀵硅薄鐨勫ぇ灝忎負(fù)30瀛楄妭銆傚鏋滄垜浠渶瑕佷慨鏀笵LL涓殑CMyClass綾伙紝璁╁畠鏈夌浉鍚岀殑鍑芥暟鍜屾垚鍛樺彉閲忥紝浣嗘槸緇欏鍔犱簡(jiǎn)涓涓鏈夌殑鎴愬憳鍙橀噺int綾誨瀷錛岀幇鍦–MyClass瀵硅薄鐨勫ぇ灝忓氨鏄?4瀛楄妭浜?jiǎn)銆傚綋鐩存帴鎶婅繖涓柊鐨凞LL緇欏鎴蜂嬌鐢ㄦ浛鎹㈡帀鍘熸潵30瀛楄妭澶у皬鐨凞LL錛屽鎴峰簲鐢ㄧ▼搴忔湡鏈涚殑鏄?0瀛楄妭澶у皬鐨勫璞★紝鑰岀幇鍦ㄥ嵈鍙樻垚浜?jiǎn)涓涓?4瀛楄妭澶у皬鐨勫璞★紝緋熺硶錛屽鎴風(fēng)▼搴忓嚭閿欎簡(jiǎn)銆?br />聽(tīng)聽(tīng)聽(tīng) 綾諱技鐨勯棶棰橈紝濡傛灉涓嶆槸瀵煎嚭CMyClass綾伙紝鑰屽湪瀵煎嚭鐨勫嚱鏁頒腑浣跨敤浜?jiǎn)CMyClass錛屾敼鍙樺璞$殑澶у皬浠嶇劧浼?xì)鏈夐棶棰樼殑銆傝繖涓椂鍊欎慨鏀硅繖涓棶棰樼殑鍞竴鍔炴硶灝辨槸鏇挎崲瀹㈡埛紼嬪簭涓殑CMyClass鐨勫ご鏂囦歡錛屽叏閮ㄩ噸鏂扮紪璇戞暣涓簲鐢ㄧ▼搴忥紝璁╁鎴風(fēng)▼搴忎嬌鐢ㄥぇ灝忎負(fù)34瀛楄妭鐨勫璞°?br />聽(tīng)聽(tīng)聽(tīng) 榪欏氨鏄竴涓弗閲嶇殑闂錛屾湁鐨勬椂鍊欏鏋滄病鏈夊鎴風(fēng)▼搴忕殑婧愪唬鐮侊紝閭d箞鎴戜滑灝變笉鑳戒嬌鐢ㄨ繖涓柊鐨凞LL浜?jiǎn)銆?br /> 浜屻佽В鍐蟲(chóng)柟娉暵?tīng)? 聽(tīng)涓轟簡(jiǎn)鑳介伩鍏嶉噸鏂扮紪璇戝鎴風(fēng)▼搴忥紝榪欓噷浠嬬粛涓や釜鏂規(guī)硶錛氾紙1錛変嬌鐢ㄦ帴鍙g被銆傦紙2錛変嬌鐢ㄥ垱寤哄拰閿姣佺被鐨勯潤(rùn)鎬佸嚱鏁般?br />1銆佷嬌鐢ㄦ帴鍙g被 聽(tīng)聽(tīng) 鎺ュ彛綾葷殑涔熷氨鏄垱寤虹浜屼釜綾伙紝瀹冧綔涓鴻瀵煎嚭綾葷殑鎺ュ彛錛屾墍浠ュ湪瀵煎嚭綾繪敼鍙樻椂錛屼篃涓嶉渶瑕侀噸鏂扮紪璇戝鎴風(fēng)▼搴忥紝鍥犱負(fù)鎺ュ彛綾繪病鏈夊彂鐢熷彉鍖栥?br />聽(tīng)聽(tīng) 鍋囪瀵煎嚭鐨凜MyClass綾繪湁涓や釜鍑芥暟FunctionA FunctionB銆傜幇鍦ㄥ垱寤轟竴涓帴鍙g被CMyInte***ce錛屼笅闈㈠氨鏄湪DLL涓殑CMyInte***ce綾葷殑澶存枃浠剁殑浠g爜錛?br /># include "MyClass.h" class _declspec(dllexport) CMyInte***ce { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) CMyClass *pmyclass; 聽(tīng)聽(tīng)聽(tīng)聽(tīng) CMyInte***ce(); 聽(tīng)聽(tīng)聽(tīng)聽(tīng) ~CMyInte***ce(); 聽(tīng) public: 聽(tīng)聽(tīng)聽(tīng)聽(tīng) int FunctionA(int); 聽(tīng)聽(tīng)聽(tīng)聽(tīng) int FunctionB(int); }; 鑰屽湪瀹㈡埛紼嬪簭涓殑澶存枃浠剁◢涓嶅悓錛屼笉闇瑕両NCLUDE璇彞錛屽洜涓哄鎴風(fēng)▼搴忔病鏈夊畠鐨勬嫹璐濄傜浉鍙嶏紝浣跨敤涓涓狢MyClass鐨勫悜鍓嶅0鏄庯紝鍗充嬌娌℃湁澶存枃浠朵篃鑳界紪璇戯細(xì) class _declspec(dllexport) CMyInte***ce { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) class CMyClass;//鍚戝墠澹版槑 聽(tīng)聽(tīng)聽(tīng)聽(tīng) CMyClass *pmyclass; 聽(tīng)聽(tīng)聽(tīng)聽(tīng) CMyInte***ce(); 聽(tīng)聽(tīng)聽(tīng)聽(tīng) ~CMyInte***ce(); 聽(tīng) public: 聽(tīng)聽(tīng)聽(tīng)聽(tīng) int FunctionA(int); 聽(tīng)聽(tīng)聽(tīng)聽(tīng) int FunctionB(int); }; 鍦―LL涓殑CMyInte***ce鐨勫疄鐜板涓嬶細(xì) CMyInte***ce::CMyInte***ce() { 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pmyclass = new CMyClass(); } CMyInte***ce::~CMyInte***ce() { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) delete pmyclass; } int CMyInte***ce::FunctionA() { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) return pmyclass->FunctionA(); } int CMyInte***ce::FunctionB() { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) return pmyclass->FunctionB();聽(tīng)聽(tīng)聽(tīng) } ..... 瀵瑰鍑虹被CMyClass鐨勬瘡涓垚鍛樺嚱鏁幫紝CMyInte***ce綾婚兘鎻愪緵鑷繁鐨勫搴旂殑鍑芥暟銆傚鎴風(fēng)▼搴忎笌CMyClass娌℃湁鑱旂郴錛岃繖鏍蜂換鎰忔敼CMyClass涔熶笉浼?xì)鏈夐棶棰樺Q屽洜涓篊MyInte***ce綾葷殑澶у皬娌℃湁鍙戠敓鍙樺寲銆傚嵆浣夸負(fù)浜?jiǎn)鑳借畨K棶CMyClass涓殑鏂板鍙橀噺鑰岀粰C(jī)MyInte***ce綾誨姞浜?jiǎn)鍑芥曨C篃涓嶄細(xì)鏈夐棶棰樼殑銆?br />聽(tīng)聽(tīng) 浣嗘槸榪欑鏂規(guī)硶涔熷瓨鍦ㄦ槑鏄劇殑闂錛屽瀵煎嚭綾葷殑姣忎釜鍑芥暟鍜屾垚鍛樺彉閲忛兘瑕佸搴斿疄鐜幫紝鏈夌殑鏃跺欒繖涓帴鍙g被浼?xì)寰堝簽澶с傚悓鏃跺鍔犱簡(jiǎn)瀹㈡埛紼嬪簭璋冪敤鎵闇瑕佺殑鏃墮棿銆傚鍔犱簡(jiǎn)紼嬪簭鐨勫紑閿銆?br /> 2銆佷嬌鐢ㄩ潤(rùn)鎬佸嚱鏁?br />聽(tīng)聽(tīng) 榪樺彲浠ヤ嬌鐢ㄩ潤(rùn)鎬佸嚱鏁版潵鍒涘緩鍜岄攢姣佺被瀵硅薄銆傚垱寤轟竴涓鍑虹被鐨勬椂鍊欙紝澧炲姞涓や釜闈?rùn)鎬佺殑鍏湁鍑芥暟CreateMe()/DestroyMe()錛屽ご鏂囦歡濡備笅錛?br />class _declspec(dllexport) CMyClass { 聽(tīng)聽(tīng)聽(tīng)聽(tīng) CMyClass(); 聽(tīng)聽(tīng)聽(tīng)聽(tīng) ~CMyClass(); 聽(tīng) public: 聽(tīng)聽(tīng)聽(tīng)聽(tīng) static CMyClass *CreateMe(); 聽(tīng)聽(tīng)聽(tīng)聽(tīng) static void DestroyMe(CMyClass *ptr); }; 瀹炵幇鍑芥暟灝辨槸錛?br />CMyClass * CMyClass::CMyClass() { 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return new CMyClass; } void CMyClass::DestroyMe(CMyClass *ptr) { 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) delete ptr; } 鐒跺悗璞″叾浠栫被涓鏍峰鍑篊MyClass綾伙紝榪欎釜鏃跺欏湪瀹㈡埛紼嬪簭涓嬌鐢ㄨ繖涓被鐨勬柟娉曠◢鏈変笉鍚屼簡(jiǎn)銆傚鑻ユ兂鍒涘緩涓涓狢MyClass瀵硅薄錛屽氨搴旇鏄細(xì) CMyClass x; CMyClass *ptr = CMyClass::CreateMe(); 鍦ㄤ嬌鐢ㄥ畬鍚庡垹闄わ細(xì) CMyClass::DestroyMe(ptr); ]]>
国产综合免费精品久久久 |
亚洲综合日韩久久成人AV |
国产精品美女久久久 |
伊人色综合久久天天人手人婷 |
久久国内免费视频 |
成人综合久久精品色婷婷 |
日产精品久久久久久久 |
久久久久久精品免费免费自慰 |
久久久久久国产精品美女
|
久久精品人妻一区二区三区 |
国产精品内射久久久久欢欢
|
久久久久久A亚洲欧洲AV冫
|
久久精品国产亚洲5555 |
久久久国产亚洲精品 |
亚洲国产精品久久久天堂 |
久久精品国产亚洲av麻豆小说 |
国产精品免费看久久久 |
国产69精品久久久久99尤物 |
三级片免费观看久久 |
亚洲成色WWW久久网站 |
久久成人精品视频 |
国产高潮国产高潮久久久91
|
99久久夜色精品国产网站 |
久久精品一区二区影院 |
国产成人精品三上悠亚久久 |
久久r热这里有精品视频 |
亚洲国产日韩欧美综合久久 |
精品蜜臀久久久久99网站 |
理论片午午伦夜理片久久
|
大香伊人久久精品一区二区
|
中文无码久久精品 |
久久精品无码免费不卡 |
亚洲va久久久噜噜噜久久 |
国产叼嘿久久精品久久 |
午夜久久久久久禁播电影 |
国产无套内射久久久国产 |
久久午夜伦鲁片免费无码 |
国产精品久久久久免费a∨ |
久久久精品午夜免费不卡 |
久久精品国产清自在天天线 |
国内精品久久久久久不卡影院
|