锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品无码久久久久久尤物,久久噜噜久久久精品66,大香网伊人久久综合网2020http://www.shnenglu.com/sunraiing9/category/1806.html涓撴敞C++鎶鏈? 鍦ㄨ繖閲屽啓涓嬭嚜宸辯殑瀛︿範蹇冨緱 鎰熸偀 鍜屽ぇ瀹惰璁?鍏卞悓榪涙錛堟榪庢壒璇勶紒錛侊紒錛?/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="5lflbfp" class="arttitle">WindowsMediaPlayer鎺т歡鐨勪嬌鐢?/span> </td> </tr> <tr> <td class="details" valign="top" align="right">By聽 瀛欐偀絀?鍙戣〃浜?2006-3-15 14:00:00聽 </td> </tr> <tr> <td class="artbody" valign="top"> <br />[鍩烘湰灞炴聽銆聽<br />URL:String;聽鎸囧畾濯掍綋浣嶇疆錛屾湰鏈烘垨緗戠粶鍦板潃聽<br />uiMode:String;聽鎾斁鍣ㄧ晫闈㈡ā寮忥紝鍙負Full,聽Mini,聽None,聽Invisible聽<br />playState:integer;聽鎾斁鐘舵侊紝1=鍋滄錛?=鏆傚仠錛?=鎾斁錛?=姝e湪緙撳啿錛?=姝e湪榪炴帴錛?0=鍑嗗灝辯華聽<br />enableContextMenu:Boolean;聽鍚敤/紱佺敤鍙抽敭鑿滃崟聽<br />fullScreen:boolean;聽鏄惁鍏ㄥ睆鏄劇ず聽 <p></p><p>聽[controls]聽聽鎾斁鍣ㄥ熀鏈帶鍒堵?br />controls.play;聽鎾斁聽<br />controls.pause;聽鏆傚仠聽<br />controls.stop;聽鍋滄聽<br />controls.currentPosition:double;聽褰撳墠榪涘害聽<br />controls.currentPositionString:string;聽褰撳墠榪涘害錛屽瓧絎︿覆鏍煎紡銆傚鈥?0:23鈥澛?br />controls.fastForward;聽蹇繘聽<br />controls.fastReverse;聽蹇聽<br />controls.next;聽涓嬩竴鏇猜?br />controls.previous;聽涓婁竴鏇猜?/p><p>聽[settings]鎾斁鍣ㄥ熀鏈緗?br />settings.volume:integer;聽闊抽噺錛?-100聽<br />settings.autoStart:Boolean;聽鏄惁鑷姩鎾斁聽<br />settings.mute:Boolean;聽鏄惁闈欓煶聽<br />settings.playCount:integer;聽鎾斁嬈℃暟聽</p><p>聽[currentMedia]聽褰撳墠濯掍綋灞炴?br />currentMedia.duration:double;聽濯掍綋鎬婚暱搴β?br />currentMedia.durationString:string;聽濯掍綋鎬婚暱搴︼紝瀛楃涓叉牸寮忋傚鈥?3:24鈥澛?br />currentMedia.getItemInfo(const聽string);聽鑾峰彇褰撳墠濯掍綋淇℃伅"Title"=濯掍綋鏍囬錛?Author"=鑹烘湳瀹訛紝"Copyright"=鐗堟潈淇℃伅錛?Description"=濯掍綋鍐呭鎻忚堪錛?Duration"=鎸佺畫鏃墮棿錛堢錛夛紝"FileSize"=鏂囦歡澶у皬錛?FileType"=鏂囦歡綾誨瀷錛?sourceURL"=鍘熷鍦板潃聽<br />currentMedia.setItemInfo(const聽string);聽閫氳繃灞炴у悕璁劇疆濯掍綋淇℃伅聽<br />currentMedia.name:string;聽鍚屄燾urrentMedia.getItemInfo("Title")聽</p><p>聽[currentPlaylist]聽褰撳墠鎾斁鍒楄〃灞炴?br />currentPlaylist.count:integer;聽褰撳墠鎾斁鍒楄〃鎵鍖呭惈濯掍綋鏁奧?br />currentPlaylist.Item[integer];聽鑾峰彇鎴栬緗寚瀹氶」鐩獟浣撲俊鎭?/p></td> </tr> <tr> <td valign="top">聽</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綾葷殑鎴愬憳鍑芥暟 浣滆咃細鏈煡

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鏄庝負

int getpos( ) const;

void setpos( int npos );

鐢╣etlinesize鍜宻etlinesize鏉ユ煡璇㈠拰璁劇疆鍦ㄦ寜涓涓嬪乏綆ご閿垨鍙崇澶撮敭鏃舵粦灝虹殑縐誨姩閲忥紝璇ョЩ鍔ㄩ噺鐨勭己鐪佸兼槸1涓崟浣嶏紟鍑芥暟鐨勫0鏄庝負

int getlinesize( ) const;

int setlinesize( int nsize );

鐢╣etpagesize鍜宻etpagesize鏉ユ煡璇㈠拰璁劇疆婊戝昂鐨勫潡縐誨姩閲忥紝鍧楃Щ鍔ㄩ噺鏄寚褰撴寜涓媝gup鎴杙gdown閿椂婊戝昂鐨勭Щ鍔ㄩ噺錛庡嚱鏁扮殑澹版槑涓?br />
int getpagesize( ) const;

int setpagesize( int nsize );

鐢╯etticfreq璁劇疆杞ㄩ亾鏉$殑鍒誨害鐨勯搴︼紟緙虹渷鐨勯搴︽槸姣忎釜鍗曚綅閮芥湁涓涓埢搴︼紝鍦ㄨ寖鍥磋緝澶ф椂錛屼負浜嗕嬌鍒誨害涓嶈嚦浜庤繃瀵嗭紝闇瑕佽皟鐢ㄨ鍑芥暟璁劇疆涓涓悎鐞嗙殑棰戝害錛庡嚱鏁扮殑澹版槑涓?br />
void setticfreq( int nfreq );

鍙傛暟nfreq璇存槑浜嗕袱涓埢搴︿箣闂寸殑闂撮殧錛?br />
鐢ㄥ嚱鏁皊ettic鏉ュ湪鎸囧畾浣嶇疆璁劇疆鍒誨害錛巜indows鑷姩鏄劇ず鐨勫埢搴︽槸鍧囧寑鐨勶紝鍒╃敤璇ュ嚱鏁板彲浠ヤ漢涓鴻緗笉鍧囧寑鐨勫埢搴︼紝璇ュ嚱鏁扮殑澹版槑涓?br />
bool settic( int ntic );

鐢ㄥ嚱鏁癱leartics鏉ユ竻闄ゆ墍鏈夌殑鍒誨害錛庤鍑芥暟鐨勫0鏄庝負

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鍑芥暟浜嗐?浣跨敤瀹氭椂鍣ㄧ殑鏂規硶姣旇緝綆鍗曪紝閫氬父鍛婅瘔WINDOWS涓涓椂闂撮棿闅旓紝鐒跺悗WINDOWS浠ユ鏃墮棿闂撮殧鍛ㄦ湡鎬цЕ鍙戠▼搴忋傞氬父鏈変袱縐嶆柟娉曟潵瀹炵幇錛氬彂閫乄M_TIMER娑堟伅鍜岃皟鐢ㄥ簲鐢ㄧ▼搴忓畾涔夌殑鍥炶皟鍑芥暟銆?

1.1 鐢╓M_TIMER鏉ヨ緗畾鏃跺櫒

鍏堣鐪婼etTimer榪欎釜API鍑芥暟鐨勫師鍨?

UINT_PTR SetTimer(
聽 HWND hWnd,聽聽聽聽聽聽聽聽聽聽聽聽聽 // 紿楀彛鍙ユ焺
聽 UINT_PTR nIDEvent,聽聽聽聽聽 // 瀹氭椂鍣↖D錛屽涓畾鏃跺櫒鏃訛紝鍙互閫氳繃璇D鍒ゆ柇鏄摢涓畾鏃跺櫒
聽 UINT uElapse,聽聽聽聽聽聽聽聽聽聽 // 鏃墮棿闂撮殧,鍗曚綅涓烘縐?br />聽 TIMERPROC lpTimerFunc聽聽 // 鍥炶皟鍑芥暟
);

渚嬪
SetTimer(m_hWnd,1,1000,NULL); //涓涓?縐掕Е鍙戜竴嬈$殑瀹氭椂鍣?br />鍦∕FC紼嬪簭涓璖etTimer琚皝瑁呭湪CWnd綾諱腑錛岃皟鐢ㄥ氨涓嶇敤鎸囧畾紿楀彛鍙ユ焺浜?/p>

浜庢槸SetTimer鍑芥暟鐨勫師鍨嬪彉涓猴細

UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))

褰撲嬌鐢⊿etTimer鍑芥暟鐨勬椂鍊欙紝灝變細鐢熸垚涓涓鏃跺櫒銆傚嚱鏁頒腑nIDEvent鎸囩殑鏄鏃跺櫒鐨勬爣璇嗭紝涔熷氨鏄悕瀛椼俷Elapse鎸囩殑鏄椂闂撮棿闅旓紝涔熷氨鏄瘡闅斿闀挎椂闂磋Е鍙戜竴嬈′簨浠躲傜涓変釜鍙傛暟鏄竴涓洖璋冨嚱鏁幫紝鍦ㄨ繖涓嚱鏁伴噷錛屾斁鍏ヤ綘鎯寵鍋氱殑浜嬫儏鐨勪唬鐮侊紝浣犲彲浠ュ皢瀹冭瀹氫負NULL錛屼篃灝辨槸浣跨敤緋葷粺榛樿鐨勫洖璋冨嚱鏁幫紝緋葷粺榛樿璁ょ殑鏄痮nTime鍑芥暟銆傝繖涓嚱鏁版庝箞鐢熸垚鐨勫憿錛熶綘闇瑕佸湪闇瑕佽鏃跺櫒鐨勭被鐨勭敓鎴恛nTime鍑芥暟錛氬湪ClassWizard閲岋紝閫夋嫨闇瑕佽鏃跺櫒鐨勭被錛屾坊鍔燱M_TIME娑堟伅鏄犲皠錛屽氨鑷姩鐢熸垚onTime鍑芥暟浜嗐傜劧鍚庡湪鍑芥暟閲屾坊鍔犱唬鐮侊紝璁╀唬鐮佸疄鐜板姛鑳姐傛瘡闅斾竴孌墊椂闂村氨浼氳嚜鍔ㄦ墽琛屼竴嬈°?

渚嬶細

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>

浜? 鎴栬浣犱細闂紝濡傛灉鎴戣鍔犲叆涓や釜鎴栬呬袱涓互涓婄殑 timer鎬庝箞鍔烇紵

緇х畫鐢⊿etTimer鍑芥暟鍚э紝涓婃鐨則imer鐨処D鏄?錛岃繖嬈″彲浠ユ槸2錛?錛?銆傘傘傘?

SetTimer(2,1000,NULL);

SetTimer(3,500,NULL);

鍡紝WINDOWS浼氬崗璋冧粬浠殑銆傚綋鐒秓nTimer鍑芥暟浣撲篃瑕佸彂鐢熷彉鍖栵紝瑕佸湪鍑芥暟浣撳唴娣誨姞姣忎竴涓猼imer鐨勫鐞嗕唬鐮侊細

onTimer(nIDEvent)

{

switch(nIDEvent)

{

case 1:........;

break;

case 2:.......;

break;

case 3:......;

break;

}

}

鍦∕FC鐢ㄤ嬌鐢═imer 鍙互鍏堢敤MFC Class Wizard緇機XxxxDlg娣誨姞涓涓猈M_TIMER鐨勬秷鎭搷搴斿嚱鏁?/p>

鍦╲oid CLXWGDlg::OnTimer(UINT nIDEvent)涓啓鍏ユ墽琛岀殑鎿嶄綔聽 鐒跺悗鍦ㄥ搷搴旂殑鍑芥暟閲岀敤

聽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 鈥業DC_TBUTTON1鈥?and 鈥業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 鈥業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 鈥業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 />聽</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 />聽聽聽 浣跨敤MFC鍙互鐢熸垚涓ょ綾誨瀷鐨凞LL錛歁FC鎵╁睍DLL鍜屽父瑙凞LL銆傚父瑙凞LL鏈夊彲浠ュ垎涓哄姩鎬佽繛鎺ュ拰闈欐佽繛鎺ャ俈isual C++榪樺彲浠ョ敓鎴怶IN32 DLL錛屼絾涓嶆槸榪欓噷璁ㄨ鐨勪富瑕佸璞°?br />1銆丮FC鎵╁睍DLL
聽聽 姣忎釜DLL閮芥湁鏌愮綾誨瀷鐨勬帴鍙o細鍙橀噺銆佹寚閽堛佸嚱鏁般佸鎴風▼搴忚闂殑綾匯傚畠浠殑浣滅敤鏄瀹㈡埛紼嬪簭浣跨敤DLL錛孧FC鎵╁睍DLL鍙互鏈塁++鐨勬帴鍙c備篃灝辨槸瀹冨彲浠ュ鍑篊++綾葷粰瀹㈡埛绔傚鍑虹殑鍑芥暟鍙互浣跨敤C++/MFC鏁版嵁綾誨瀷鍋氬弬鏁版垨榪斿洖鍊鹼紝瀵煎嚭涓涓被鏃跺鎴風鑳藉垱寤虹被瀵硅薄鎴栬呮淳鐢熻繖涓被銆傚悓鏃訛紝鍦―LL涓篃鍙互浣跨敤DLL鍜孧FC銆?br />聽聽 Visual C++浣跨敤鐨凪FC綾誨簱涔熸槸淇濆瓨鍦ㄤ竴涓狣LL涓紝MFC鎵╁睍DLL鍔ㄦ佽繛鎺ュ埌MFC浠g爜搴撶殑DLL錛屽鎴風▼搴忎篃蹇呴』瑕佸姩鎬佽繛鎺ュ埌MFC浠g爜搴撶殑DLL銆傦紙榪欓噷璋堝埌鐨勪袱涓狣LL錛屼竴涓槸鎴戜滑鑷繁緙栧啓鐨凞LL錛屼竴涓MFC綾誨簱鐨凞LL錛夌幇鍦∕FC浠g爜搴撶殑DLL涔熷瓨鍦ㄥ涓増鏈紝瀹㈡埛紼嬪簭鍜屾墿灞旸LL閮藉繀欏諱嬌鐢ㄧ浉鍚岀増鏈殑MFC浠g爜DLL銆傛墍浠ヤ負浜嗚MFC鎵╁睍DLL鑳藉緢濂界殑宸ヤ綔錛屾墿灞旸LL鍜屽鎴風▼搴忛兘蹇呴』鍔ㄦ佽繛鎺ュ埌MFC浠g爜搴揇LL銆傝岃繖涓狣LL蹇呴』鍦ㄥ鎴風▼搴忚繍琛岀殑璁$畻鏈轟笂銆?br />2銆佸父瑙凞LL
聽聽 浣跨敤MFC鎵╁睍DLL鐨勪竴涓棶棰樺氨鏄疍LL浠呰兘鍜孧FC瀹㈡埛紼嬪簭涓璧峰伐浣滐紝濡傛灉闇瑕佷竴涓嬌鐢ㄦ洿騫挎硾鐨凞LL錛屾渶濂介噰鐢ㄥ父瑙凞LL錛屽洜涓哄畠涓嶅彈MFC鐨勬煇浜涢檺鍒躲傚父瑙凞LL涔熸湁緙虹偣錛氬畠涓嶈兘鍜屽鎴風▼搴忓彂閫佹寚閽堟垨MFC媧劇敓綾誨拰瀵硅薄鐨勫紩鐢ㄣ備竴鍙ヨ瘽灝辨槸甯歌DLL鍜屽鎴風▼搴忕殑鎺ュ彛涓嶈兘浣跨敤MFC錛屼絾鍦―LL鍜屽鎴風▼搴忕殑鍐呴儴榪樻槸鍙互浣跨敤MFC銆?br />聽聽 褰撳湪甯歌DLL鐨勫唴閮ㄤ嬌鐢∕FC浠g爜搴撶殑DLL鏃訛紝鍙互鏄姩鎬佽繛鎺?闈欐佽繛鎺ャ傚鏋滄槸鍔ㄦ佽繛鎺ワ紝涔熷氨鏄父瑙凞LL闇瑕佺殑MFC浠g爜娌℃湁鏋勫緩鍒癉LL涓紝榪欑鎯呭喌鏈夌偣鍜屾墿灞旸LL綾諱技錛屽湪DLL榪愯鐨勮綆楁満涓婂繀欏昏MFC浠g爜搴撶殑DLL銆傚鏋滄槸闈欐佽繛鎺ワ紝甯歌DLL閲岄潰宸茬粡鍖呭惈浜嗛渶瑕佺殑MFC浠g爜錛岃繖鏍稤LL鐨勪綋縐皢姣旇緝澶э紝浣嗗畠鍙互鍦ㄦ病鏈塎FC浠g爜搴揇LL鐨勮綆楁満涓婃甯歌繍琛屻?br />
浜屻佸緩绔婦LL
聽聽聽 鍒╃敤Visual C++鎻愪緵鐨勫悜瀵煎姛鑳藉彲浠ュ緢瀹規槗寤虹珛涓涓笉瀹屾垚浠諱綍瀹炶川浠誨姟鐨凞LL錛岃繖閲屽氨涓嶅璁蹭簡錛屼富瑕佺殑浠誨姟鏄浣曠粰DLL娣誨姞鍔熻兘錛屼互鍙婂湪瀹㈡埛紼嬪簭涓埄鐢ㄨ繖涓狣LL
1銆佸鍑虹被
聽聽 鐢ㄥ悜瀵煎緩绔嬪ソ妗嗘灦鍚庯紝灝卞彲浠ユ坊鍔犻渶瑕佸鍑虹被鐨?cpp .h鏂囦歡鍒癉LL涓潵錛屾垨鑰呯敤鍚戝鍒涘緩C++ Herder File/C++ Source File銆備負浜嗚兘瀵煎嚭榪欎釜綾伙紝鍦ㄧ被澹版槑鐨勬椂鍊欒鍔犫淿declspec(dllexport)鈥?濡傦細
class _declspec(dllexport) CMyClass
{
聽聽聽聽 ...//澹版槑
}
濡傛灉鍒涘緩鐨凪FC鎵╁睍DLL錛屽彲浠ヤ嬌鐢ㄥ畯錛欰FX_EXT_CLASS:
class AFX_EXT_CLASS CMyClass
{
聽聽聽聽 ...//澹版槑
}
榪欐牱瀵煎嚭綾葷殑鏂規硶鏄渶綆鍗曠殑錛屼篃鍙互閲囩敤.def鏂囦歡瀵煎嚭錛岃繖閲屾殏涓嶈璋堛?br />2銆佸鍑哄彉閲忋佸父閲忋佸璞?br />聽聽 寰堝鏃跺欎笉闇瑕佸鍑轟竴涓被錛屽彲浠ヨDLL瀵煎嚭涓涓彉閲忋佸父閲忋佸璞★紝瀵煎嚭瀹冧滑鍙渶瑕佽繘琛岀畝鍗曠殑澹版槑錛歘declspec(dllexport) int MyInt;
聽 _declspec(dllexport) extern const COLORREF MyColor=RGB(0,0,0);
聽 _declspec(dllexport) CRect rect(10,10,20,20);
瑕佸鍑轟竴涓父閲忔椂蹇呴』浣跨敤鍏抽敭瀛梕xtern錛屽惁鍒欎細鍙戠敓榪炴帴閿欒銆?br />娉ㄦ剰錛氬鏋滃鎴風▼搴忚瘑鍒繖涓被鑰屼笖鏈夎嚜宸辯殑澶存枃浠訛紝鍒欏彧鑳藉鍑轟竴涓被瀵硅薄銆傚鏋滃湪DLL涓垱寤轟竴涓被錛屽鎴風▼搴忎笉浣跨敤澶存枃浠跺氨鏃犳硶璇嗗埆榪欎釜綾匯?br />聽 褰撳鍑轟竴涓璞℃垨鑰呭彉閲忔椂錛岃澆鍏LL鐨勬瘡涓鎴風▼搴忛兘鏈変竴涓嚜宸辯殑鎷瘋礉銆備篃灝辨槸濡傛灉涓や釜紼嬪簭浣跨敤鐨勬槸鍚屼竴涓狣LL錛屼竴涓簲鐢ㄧ▼搴忔墍鍋氱殑淇敼涓嶄細褰卞搷鍙︿竴涓簲鐢ㄧ▼搴忋?br />聽 鎴戜滑鍦ㄥ鍑虹殑鏃跺欏彧鑳藉鍑篋LL涓殑鍏ㄥ眬鍙橀噺鎴栧璞★紝鑰屼笉鑳藉鍑哄眬閮ㄧ殑鍙橀噺鍜屽璞★紝鍥犱負瀹冧滑榪囦簡浣滅敤鍩熶篃灝變笉瀛樺湪浜嗭紝閭f牱DLL灝變笉鑳芥甯稿伐浣溿傚錛?br />MyFunction()
{
聽聽聽聽聽 _declspec(dllexport) int MyInt;
聽聽聽聽聽 _declspec(dllexport) CMyClass object;
}
3銆佸鍑哄嚱鏁?br />瀵煎嚭鍑芥暟鍜屽鍑哄彉閲?瀵硅薄綾諱技錛屽彧瑕佹妸_declspec(dllexport)鍔犲埌鍑芥暟鍘熷瀷寮濮嬬殑浣嶇疆錛?br />_declspec(dllexport) int MyFunction(int);
濡傛灉鏄父瑙凞LL錛屽畠灝嗗拰C鍐欑殑紼嬪簭浣跨敤錛屽0鏄庢柟寮忓涓嬶細
extern "c" _declspec(dllexport) int MyFunction(int);
瀹炵幇錛?br />extern "c" _declspec(dllexport) int MyFunction(int x)
{
聽聽聽聽 ...//鎿嶄綔
}
濡傛灉鍒涘緩鐨勬槸鍔ㄦ佽繛鎺ュ埌MFC浠g爜搴揇LL鐨勫父瑙凞LL錛屽垯蹇呴』鎻掑叆AFX_MANAGE_STATE浣滀負瀵煎嚭鍑芥暟鐨勯琛岋紝鍥犳瀹氫箟濡備笅錛?br />extern "c" _declspec(dllexport) int MyFunction(int x)
{
聽聽聽聽 AFX_MANAGE_STATE(AfxGetStaticModuleState());
聽聽聽聽 ...//鎿嶄綔
}
鏈夋椂鍊欎負浜嗗畨鍏ㄨ搗瑙侊紝鍦ㄦ瘡涓父瑙凞LL閲岄兘鍔犱笂錛屼篃涓嶄細鏈変換浣曢棶棰橈紝鍙槸鍦ㄩ潤鎬佽繛鎺ョ殑鏃跺欒繖涓畯鏃犳晥鑰屽凡銆傝繖鏄鍑哄嚱鏁扮殑鏂規硶錛岃浣忓彧鏈塎FC鎵╁睍DLL鎵嶈兘璁╁弬鏁板拰榪斿洖鍊間嬌鐢∕FC鐨勬暟鎹被鍨嬨?br />4銆佸鍑烘寚閽?br />瀵煎嚭鎸囬拡鐨勬柟寮忓涓嬶細
_declspec(dllexport) int *pint;
_declspec(dllexport) CMyClass object = new CMyClass;
濡傛灉澹版槑鐨勬椂鍊欏悓鏃跺垵濮嬪寲浜嗘寚閽堬紝灝遍渶瑕佹壘鍒板悎閫傜殑鍦版柟綾婚噴鏀炬寚閽堛傚湪鎵╁睍DLL涓湁涓嚱鏁癉llMain()銆傦紙娉ㄦ剰鍑芥暟鍚嶄腑鐨勪袱涓猯瑕佹槸灝忓啓瀛楁瘝錛夛紝鍙互鍦ㄨ繖涓嚱鏁頒腑澶勭悊鎸囬拡錛?br /># include "MyClass.h"
_declspec(dllexport) CMyClass *pobject = new CMyClass;
DllMain(HINSTANCE hInstance,DWORD dwReason,LPVOID lpReserved)
{
聽聽聽 if(dwReason == DLL_PROCESS_ATTACH)
聽聽聽 {
聽聽聽聽聽聽聽 .....//
聽聽聽 }
聽聽聽 else if(dwReason == DLL_PROCESS_DETACH)
聽聽聽 {
聽聽聽聽聽聽聽 delete pobject;
聽聽聽 }
}
甯歌DLL鏈変竴涓粠CWinApp媧劇敓鐨勭被瀵硅薄澶勭悊DLL鐨勫紑鍜屽叧錛屽彲浠ヤ嬌鐢ㄧ被鍚戝娣誨姞InitInstance/ExitInstance鍑芥暟銆?br />int CMyDllApp::ExitInstance()
{
聽聽聽 delete pobject;
聽聽聽 return CWinApp::ExitInstance();
}

涓夈佸湪瀹㈡埛紼嬪簭涓嬌鐢―LL
聽聽聽 緙栬瘧涓涓狣LL鏃跺皢鍒涘緩涓や釜鏂囦歡.dll鏂囦歡鍜?lib鏂囦歡銆傞鍏堝皢榪欎袱涓枃浠跺鍒跺埌瀹㈡埛紼嬪簭欏圭洰鐨勬枃浠跺す閲岋紝榪欓噷闇瑕佹敞鎰廌LL鍜屽鎴風▼搴忕殑鐗堟湰闂錛屽敖閲忎嬌鐢ㄧ浉鍚岀殑鐗堟湰錛岄兘浣跨敤RELEASE鎴栬呴兘鏄疍EBUG鐗堟湰銆?br />聽聽 鎺ョ潃灝遍渶瑕佸湪瀹㈡埛紼嬪簭涓緗甃IB鏂囦歡錛屾墦寮Project Settings--->Link--->Object/library Modules涓緭鍏IB鐨勬枃浠跺悕鍜岃礬寰勩傚錛欴ebug/SampleDll.lib銆傞櫎浜咲LL鍜孡IB鏂囦歡澶栵紝瀹㈡埛紼嬪簭闇瑕侀拡瀵瑰鍑虹被銆佸嚱鏁般佸璞″拰鍙橀噺鐨勫ご鏂囦歡錛岀幇鍦ㄨ繘琛屽鍏ユ坊鍔犵殑鍏抽敭瀛楀氨鏄細_declspec(dllimport)錛屽錛?br />_declspec(dllimport) int MyFunction(int);
_declspec(dllimport) int MyInt;
_declspec(dllimport) CMyClass object;
extern "C" _declspec(dllimport) int MyFunction(int);
鍦ㄦ湁鐨勬椂鍊欎負浜嗗鍏ョ被錛岃鎶婄浉搴旂被鐨勫ご鏂囦歡娣誨姞鍒板鎴風▼搴忎腑錛屼笉鍚岀殑鏄淇敼綾誨0鏄庣殑鏍囧織錛?br />class _declspec(dllimport) CMyClass錛屽鏋滃垱寤虹殑鏄墿灞旸LL錛屼袱涓綅緗兘鏄?
class AFX_EXT_CLASS CMyClass銆?br />

浣跨敤DLL鐨勪竴涓瘮杈冧弗閲嶇殑闂灝辨槸緙栬瘧鍣ㄤ箣闂寸殑鍏煎鎬ч棶棰樸備笉鍚岀殑緙栬瘧鍣ㄥc++鍑芥暟鍦ㄤ簩榪涘埗綰у埆鐨勫疄鐜版柟寮忔槸涓嶅悓鐨勩傛墍浠ュ鍩轟簬C++鐨凞LL錛屽鏋滅紪璇戝櫒涓嶅悓灝辨湁寰堥夯鐑︾殑銆傚鏋滃垱寤虹殑鏄疢FC鎵╁睍DLL錛屽氨涓嶄細瀛樺湪闂錛屽洜涓哄畠鍙兘琚姩鎬佽繛鎺ュ埌MFC鐨勫鎴峰簲鐢ㄧ▼搴忋傝繖閲屼笉鏄湰鏂囪璁虹殑閲嶇偣銆?br />
涓銆侀噸鏂扮紪璇戦棶棰?br />鎴戜滑鍏堟潵鐪嬩竴涓湪瀹為檯涓彲鑳介亣鍒扮殑闂錛?br />聽聽聽 姣斿鐜板湪寤虹珛濂戒簡涓涓狣LL瀵煎嚭浜咰MyClass綾伙紝瀹㈡埛涔熻兘姝e父浣跨敤榪欎釜DLL錛屽亣璁綜MyClass瀵硅薄鐨勫ぇ灝忎負30瀛楄妭銆傚鏋滄垜浠渶瑕佷慨鏀笵LL涓殑CMyClass綾伙紝璁╁畠鏈夌浉鍚岀殑鍑芥暟鍜屾垚鍛樺彉閲忥紝浣嗘槸緇欏鍔犱簡涓涓鏈夌殑鎴愬憳鍙橀噺int綾誨瀷錛岀幇鍦–MyClass瀵硅薄鐨勫ぇ灝忓氨鏄?4瀛楄妭浜嗐傚綋鐩存帴鎶婅繖涓柊鐨凞LL緇欏鎴蜂嬌鐢ㄦ浛鎹㈡帀鍘熸潵30瀛楄妭澶у皬鐨凞LL錛屽鎴峰簲鐢ㄧ▼搴忔湡鏈涚殑鏄?0瀛楄妭澶у皬鐨勫璞★紝鑰岀幇鍦ㄥ嵈鍙樻垚浜嗕竴涓?4瀛楄妭澶у皬鐨勫璞★紝緋熺硶錛屽鎴風▼搴忓嚭閿欎簡銆?br />聽聽聽 綾諱技鐨勯棶棰橈紝濡傛灉涓嶆槸瀵煎嚭CMyClass綾伙紝鑰屽湪瀵煎嚭鐨勫嚱鏁頒腑浣跨敤浜咰MyClass錛屾敼鍙樺璞$殑澶у皬浠嶇劧浼氭湁闂鐨勩傝繖涓椂鍊欎慨鏀硅繖涓棶棰樼殑鍞竴鍔炴硶灝辨槸鏇挎崲瀹㈡埛紼嬪簭涓殑CMyClass鐨勫ご鏂囦歡錛屽叏閮ㄩ噸鏂扮紪璇戞暣涓簲鐢ㄧ▼搴忥紝璁╁鎴風▼搴忎嬌鐢ㄥぇ灝忎負34瀛楄妭鐨勫璞°?br />聽聽聽 榪欏氨鏄竴涓弗閲嶇殑闂錛屾湁鐨勬椂鍊欏鏋滄病鏈夊鎴風▼搴忕殑婧愪唬鐮侊紝閭d箞鎴戜滑灝變笉鑳戒嬌鐢ㄨ繖涓柊鐨凞LL浜嗐?br />
浜屻佽В鍐蟲柟娉暵犅?
聽涓轟簡鑳介伩鍏嶉噸鏂扮紪璇戝鎴風▼搴忥紝榪欓噷浠嬬粛涓や釜鏂規硶錛氾紙1錛変嬌鐢ㄦ帴鍙g被銆傦紙2錛変嬌鐢ㄥ垱寤哄拰閿姣佺被鐨勯潤鎬佸嚱鏁般?br />1銆佷嬌鐢ㄦ帴鍙g被
聽聽 鎺ュ彛綾葷殑涔熷氨鏄垱寤虹浜屼釜綾伙紝瀹冧綔涓鴻瀵煎嚭綾葷殑鎺ュ彛錛屾墍浠ュ湪瀵煎嚭綾繪敼鍙樻椂錛屼篃涓嶉渶瑕侀噸鏂扮紪璇戝鎴風▼搴忥紝鍥犱負鎺ュ彛綾繪病鏈夊彂鐢熷彉鍖栥?br />聽聽 鍋囪瀵煎嚭鐨凜MyClass綾繪湁涓や釜鍑芥暟FunctionA FunctionB銆傜幇鍦ㄥ垱寤轟竴涓帴鍙g被CMyInte***ce錛屼笅闈㈠氨鏄湪DLL涓殑CMyInte***ce綾葷殑澶存枃浠剁殑浠g爜錛?br /># include "MyClass.h"
class _declspec(dllexport) CMyInte***ce
{
聽聽聽聽 CMyClass *pmyclass;
聽聽聽聽 CMyInte***ce();
聽聽聽聽 ~CMyInte***ce();
聽 public:
聽聽聽聽 int FunctionA(int);
聽聽聽聽 int FunctionB(int);
};
鑰屽湪瀹㈡埛紼嬪簭涓殑澶存枃浠剁◢涓嶅悓錛屼笉闇瑕両NCLUDE璇彞錛屽洜涓哄鎴風▼搴忔病鏈夊畠鐨勬嫹璐濄傜浉鍙嶏紝浣跨敤涓涓狢MyClass鐨勫悜鍓嶅0鏄庯紝鍗充嬌娌℃湁澶存枃浠朵篃鑳界紪璇戯細
class _declspec(dllexport) CMyInte***ce
{
聽聽聽聽 class CMyClass;//鍚戝墠澹版槑
聽聽聽聽 CMyClass *pmyclass;
聽聽聽聽 CMyInte***ce();
聽聽聽聽 ~CMyInte***ce();
聽 public:
聽聽聽聽 int FunctionA(int);
聽聽聽聽 int FunctionB(int);
};
鍦―LL涓殑CMyInte***ce鐨勫疄鐜板涓嬶細
CMyInte***ce::CMyInte***ce()
{
聽聽聽聽聽 pmyclass = new CMyClass();
}
CMyInte***ce::~CMyInte***ce()
{
聽聽聽聽 delete pmyclass;
}
int CMyInte***ce::FunctionA()
{
聽聽聽聽 return pmyclass->FunctionA();
}
int CMyInte***ce::FunctionB()
{
聽聽聽聽 return pmyclass->FunctionB();聽聽聽
}
.....
瀵瑰鍑虹被CMyClass鐨勬瘡涓垚鍛樺嚱鏁幫紝CMyInte***ce綾婚兘鎻愪緵鑷繁鐨勫搴旂殑鍑芥暟銆傚鎴風▼搴忎笌CMyClass娌℃湁鑱旂郴錛岃繖鏍蜂換鎰忔敼CMyClass涔熶笉浼氭湁闂錛屽洜涓篊MyInte***ce綾葷殑澶у皬娌℃湁鍙戠敓鍙樺寲銆傚嵆浣夸負浜嗚兘璁塊棶CMyClass涓殑鏂板鍙橀噺鑰岀粰CMyInte***ce綾誨姞浜嗗嚱鏁頒篃涓嶄細鏈夐棶棰樼殑銆?br />聽聽 浣嗘槸榪欑鏂規硶涔熷瓨鍦ㄦ槑鏄劇殑闂錛屽瀵煎嚭綾葷殑姣忎釜鍑芥暟鍜屾垚鍛樺彉閲忛兘瑕佸搴斿疄鐜幫紝鏈夌殑鏃跺欒繖涓帴鍙g被浼氬緢搴炲ぇ銆傚悓鏃跺鍔犱簡瀹㈡埛紼嬪簭璋冪敤鎵闇瑕佺殑鏃墮棿銆傚鍔犱簡紼嬪簭鐨勫紑閿銆?br />
2銆佷嬌鐢ㄩ潤鎬佸嚱鏁?br />聽聽 榪樺彲浠ヤ嬌鐢ㄩ潤鎬佸嚱鏁版潵鍒涘緩鍜岄攢姣佺被瀵硅薄銆傚垱寤轟竴涓鍑虹被鐨勬椂鍊欙紝澧炲姞涓や釜闈欐佺殑鍏湁鍑芥暟CreateMe()/DestroyMe()錛屽ご鏂囦歡濡備笅錛?br />class _declspec(dllexport) CMyClass
{
聽聽聽聽 CMyClass();
聽聽聽聽 ~CMyClass();
聽 public:
聽聽聽聽 static CMyClass *CreateMe();
聽聽聽聽 static void DestroyMe(CMyClass *ptr);
};
瀹炵幇鍑芥暟灝辨槸錛?br />CMyClass * CMyClass::CMyClass()
{
聽聽聽聽聽 return new CMyClass;
}
void CMyClass::DestroyMe(CMyClass *ptr)
{
聽聽聽聽聽 delete ptr;
}
鐒跺悗璞″叾浠栫被涓鏍峰鍑篊MyClass綾伙紝榪欎釜鏃跺欏湪瀹㈡埛紼嬪簭涓嬌鐢ㄨ繖涓被鐨勬柟娉曠◢鏈変笉鍚屼簡銆傚鑻ユ兂鍒涘緩涓涓狢MyClass瀵硅薄錛屽氨搴旇鏄細
CMyClass x;
CMyClass *ptr = CMyClass::CreateMe();
鍦ㄤ嬌鐢ㄥ畬鍚庡垹闄わ細
CMyClass::DestroyMe(ptr);


]]>
久久综合九色综合欧美就去吻| 久久91精品综合国产首页| 久久亚洲2019中文字幕| 伊人久久国产免费观看视频 | 无码8090精品久久一区| 久久狠狠爱亚洲综合影院| 精品永久久福利一区二区| 99久久精品免费看国产| 精品综合久久久久久97| 久久国产一区二区| 久久午夜夜伦鲁鲁片免费无码影视 | 国产精品一久久香蕉国产线看| 久久精品成人免费看| 久久婷婷人人澡人人爽人人爱| 久久噜噜电影你懂的| 久久人人爽人人爽人人片av麻烦| 热re99久久精品国产99热| 久久精品国产亚洲αv忘忧草| 一级做a爰片久久毛片人呢| 香蕉久久夜色精品升级完成| 久久精品国产一区二区三区不卡| 国内精品伊人久久久久AV影院| 久久久久亚洲AV无码去区首| 精品午夜久久福利大片| 无码人妻久久久一区二区三区 | 亚洲精品国产成人99久久| 久久国产色AV免费看| 久久天天躁狠狠躁夜夜不卡 | 久久综合久久综合亚洲| 久久精品国产免费| 精品久久久噜噜噜久久久 | 婷婷久久综合九色综合九七| 777久久精品一区二区三区无码| 精品无码久久久久久午夜| 亚洲第一极品精品无码久久| 亚洲AV伊人久久青青草原| 久久91精品国产91| 无码人妻久久一区二区三区蜜桃| 亚洲午夜无码久久久久小说| 日本WV一本一道久久香蕉| 久久无码高潮喷水|