锘??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-cnMon, 19 May 2008 14:48:26 GMTMon, 19 May 2008 14:48:26 GMT60WindowsMediaPlayer鎺т歡鐨勪嬌鐢?/title><link>http://www.shnenglu.com/sunraiing9/articles/14456.html</link><dc:creator>@鐜嬩竴浼?/dc:creator><author>@鐜嬩竴浼?/author><pubDate>Tue, 31 Oct 2006 16:36:00 GMT</pubDate><guid>http://www.shnenglu.com/sunraiing9/articles/14456.html</guid><wfw:comment>http://www.shnenglu.com/sunraiing9/comments/14456.html</wfw:comment><comments>http://www.shnenglu.com/sunraiing9/articles/14456.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunraiing9/comments/commentRss/14456.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunraiing9/services/trackbacks/14456.html</trackback:ping><description><![CDATA[ <table cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td valign="top"> <span id="xnhbffr" class="arttitle">WindowsMediaPlayer鎺т歡鐨勪嬌鐢?/span> </td> </tr> <tr> <td class="details" valign="top" align="right">By聽(tīng) 瀛欐?zhèn)熃I?鍙戣〃浜?2006-3-15 14:00:00聽(tīng) </td> </tr> <tr> <td class="artbody" valign="top"> <br />[鍩烘湰灞炴聽(tīng)銆聽(tīng)<br />URL:String;聽(tīng)鎸囧畾濯掍綋浣嶇疆錛屾湰鏈烘垨緗戠粶鍦板潃聽(tīng)<br />uiMode:String;聽(tīng)鎾斁鍣ㄧ晫闈㈡ā寮忥紝鍙負(fù)Full,聽(tīng)Mini,聽(tīng)None,聽(tīng)I(yíng)nvisible聽(tīng)<br />playState:integer;聽(tīng)鎾斁鐘舵侊紝1=鍋滄錛?=鏆傚仠錛?=鎾斁錛?=姝e湪緙撳啿錛?=姝e湪榪炴帴錛?0=鍑嗗灝辯華聽(tīng)<br />enableContextMenu:Boolean;聽(tīng)鍚敤/紱佺敤鍙抽敭鑿滃崟聽(tīng)<br />fullScreen:boolean;聽(tīng)鏄惁鍏ㄥ睆鏄劇ず聽(tīng) <p></p><p>聽(tīng)[controls]聽(tīng)聽(tīng)鎾斁鍣ㄥ熀鏈帶鍒堵?br />controls.play;聽(tīng)鎾斁聽(tīng)<br />controls.pause;聽(tīng)鏆傚仠聽(tīng)<br />controls.stop;聽(tīng)鍋滄聽(tīng)<br />controls.currentPosition:double;聽(tīng)褰撳墠榪涘害聽(tīng)<br />controls.currentPositionString:string;聽(tīng)褰撳墠榪涘害錛屽瓧絎︿覆鏍煎紡銆傚鈥?0:23鈥澛?br />controls.fastForward;聽(tīng)蹇繘聽(tīng)<br />controls.fastReverse;聽(tīng)蹇聽(tīng)<br />controls.next;聽(tīng)涓嬩竴鏇猜?br />controls.previous;聽(tīng)涓婁竴鏇猜?/p><p>聽(tīng)[settings]鎾斁鍣ㄥ熀鏈緗?br />settings.volume:integer;聽(tīng)闊抽噺錛?-100聽(tīng)<br />settings.autoStart:Boolean;聽(tīng)鏄惁鑷姩鎾斁聽(tīng)<br />settings.mute:Boolean;聽(tīng)鏄惁闈?rùn)闊陈?tīng)<br />settings.playCount:integer;聽(tīng)鎾斁嬈℃暟聽(tīng)</p><p>聽(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)<br />currentMedia.setItemInfo(const聽(tīng)string);聽(tīng)閫氳繃灞炴у悕璁劇疆濯掍綋淇℃伅聽(tīng)<br />currentMedia.name:string;聽(tīng)鍚屄?tīng)currentMedia.getItemInfo("Title")聽(tīng)</p><p>聽(tīng)[currentPlaylist]聽(tīng)褰撳墠鎾斁鍒楄〃灞炴?br />currentPlaylist.count:integer;聽(tīng)褰撳墠鎾斁鍒楄〃鎵鍖呭惈濯掍綋鏁奧?br />currentPlaylist.Item[integer];聽(tīng)鑾峰彇鎴栬緗寚瀹氶」鐩獟浣撲俊鎭?/p></td> </tr> <tr> <td valign="top">聽(tīng)</td> </tr> </tbody> </table> <img src ="http://www.shnenglu.com/sunraiing9/aggbug/14456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunraiing9/" target="_blank">@鐜嬩竴浼?/a> 2006-11-01 00:36 <a href="http://www.shnenglu.com/sunraiing9/articles/14456.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>CSliderctrl綾葷殑鎴愬憳鍑芥暟 http://www.shnenglu.com/sunraiing9/articles/14451.html@鐜嬩竴浼?/dc:creator>@鐜嬩竴浼?/author>Tue, 31 Oct 2006 15:06:00 GMThttp://www.shnenglu.com/sunraiing9/articles/14451.htmlhttp://www.shnenglu.com/sunraiing9/comments/14451.htmlhttp://www.shnenglu.com/sunraiing9/articles/14451.html#Feedback0http://www.shnenglu.com/sunraiing9/comments/commentRss/14451.htmlhttp://www.shnenglu.com/sunraiing9/services/trackbacks/14451.htmlCSliderctrl綾葷殑鎴愬憳鍑芥暟 浣滆咃細(xì)鏈煡

聽(tīng)
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 GMThttp://www.shnenglu.com/sunraiing9/articles/14449.htmlhttp://www.shnenglu.com/sunraiing9/comments/14449.htmlhttp://www.shnenglu.com/sunraiing9/articles/14449.html#Feedback0http://www.shnenglu.com/sunraiing9/comments/commentRss/14449.htmlhttp://www.shnenglu.com/sunraiing9/services/trackbacks/14449.htmlSetTimer鍑芥暟
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><link>http://www.shnenglu.com/sunraiing9/articles/14004.html</link><dc:creator>@鐜嬩竴浼?/dc:creator><author>@鐜嬩竴浼?/author><pubDate>Sun, 22 Oct 2006 05:45:00 GMT</pubDate><guid>http://www.shnenglu.com/sunraiing9/articles/14004.html</guid><wfw:comment>http://www.shnenglu.com/sunraiing9/comments/14004.html</wfw:comment><comments>http://www.shnenglu.com/sunraiing9/articles/14004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sunraiing9/comments/commentRss/14004.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sunraiing9/services/trackbacks/14004.html</trackback:ping><description><![CDATA[ <p nd="4">1) Right click <a class="iAs" style="FONT-WEIGHT: normal; FONT-SIZE: 100%; PADDING-BOTTOM: 1px; COLOR: darkgreen; BORDER-BOTTOM: darkgreen 0.07em solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" target="_blank" itxtdid="2890859">Solution</a> Explorer -> Add -> Resource -> Tool Bar -> New. This will open into Tool Bar Editor. </p> <p nd="5">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鈥?) </p> <p nd="6">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 </p> <pre nd="7">CToolBar m_FirstToolBar </pre> <p nd="8">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) </p> <pre nd="9">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); </pre> <p nd="10">4.1. Here you can see the various attributes set for the toolbar in 鈥楥reateEx(...)鈥?like 鈥楾BSTYLE_FLAT鈥?for flat look of toolbar buttons; </p> <p nd="11">4.2 In 鈥楲oadToolBar(...)鈥?the Resource created for the toolbar is used. This maps our toolbar object 鈥榤_FirstToolBar鈥?with resource 鈥業(yè)DR_TOOLBAR1鈥? </p> <p nd="12">4.3 鈥楻epositionBars()鈥?is used to place the toolbar on the dialog. </p> <p nd="13">5) 鈥楳oveWindow()鈥?can be used to place the toolbar on the desired position. </p> <pre nd="14">m_FirstToolBar.MoveWindow( 50, 0,100, 100, 1 ); </pre> <p nd="4">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(...) </p> <p nd="15">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. </p> <p nd="16">6)This is how the buttons of Tool Bar can be made visible/invisible </p> <pre nd="17">m_FirstToolBar.GetToolBarCtrl().HideButton(IDC_TBUTTON1, TRUE); </pre> <p nd="4">Notice that we have used the 鈥業(yè)DC_TBUTTON1鈥?which we declared at the time of creating toolbar resource. </p> <p nd="18">7) Similarly </p> <pre nd="19">m_FirstToolBar.GetToolBarCtrl().EnableButton(IDC_TBUTTON1,false) </pre> <p nd="4">can be used to disable a button. </p> <p nd="20">8) To handle Click events: 8.1 Add following line to BEGIN_MESSAGE_MAP() </p> <pre nd="21">ON_COMMAND(IDC_TBUTTON1,OnToolBarButton1) </pre> <p nd="4">8.2 Write the desired code in .cpp file </p> <pre nd="22">FirstToolBarDialog:: OnToolBarButton1() { - - - - - - } <br />聽(tīng)</pre> <img src ="http://www.shnenglu.com/sunraiing9/aggbug/14004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sunraiing9/" target="_blank">@鐜嬩竴浼?/a> 2006-10-22 13:45 <a href="http://www.shnenglu.com/sunraiing9/articles/14004.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MFC DLL鍚戝(鎽?http://www.shnenglu.com/sunraiing9/articles/13739.html@鐜嬩竴浼?/dc:creator>@鐜嬩竴浼?/author>Mon, 16 Oct 2006 00:42:00 GMThttp://www.shnenglu.com/sunraiing9/articles/13739.htmlhttp://www.shnenglu.com/sunraiing9/comments/13739.htmlhttp://www.shnenglu.com/sunraiing9/articles/13739.html#Feedback0http://www.shnenglu.com/sunraiing9/comments/commentRss/13739.htmlhttp://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∨| 久久久精品午夜免费不卡| 久久精品国产清自在天天线| 国内精品久久久久久不卡影院 |