锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美v日韩v国产v,伊人夜夜躁av伊人久久,精品成人一区二区三区http://m.shnenglu.com/tdweng/category/13586.htmlzh-cnSat, 30 Jun 2012 17:17:38 GMTSat, 30 Jun 2012 17:17:38 GMT60VC 6.0 甯歌鏂█閿欒鎬葷粨http://m.shnenglu.com/tdweng/articles/144887.html蹇冪窘蹇冪窘Sat, 23 Apr 2011 18:33:00 GMThttp://m.shnenglu.com/tdweng/articles/144887.htmlhttp://m.shnenglu.com/tdweng/comments/144887.htmlhttp://m.shnenglu.com/tdweng/articles/144887.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/144887.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/144887.htmlhttp://blog.csdn.net/xusuai5820016/archive/2010/06/28/5699824.aspx

蹇冪窘 2011-04-24 02:33 鍙戣〃璇勮
]]>
VC閿欒瑙f瀽鏂規闆嗗悎http://m.shnenglu.com/tdweng/articles/139244.html蹇冪窘蹇冪窘Mon, 24 Jan 2011 13:58:00 GMThttp://m.shnenglu.com/tdweng/articles/139244.htmlhttp://m.shnenglu.com/tdweng/comments/139244.htmlhttp://m.shnenglu.com/tdweng/articles/139244.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/139244.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/139244.html1.error LNK2019:unresolved external symbol *** referenced in functio...

褰撳ご鏂囦歡涓0鏄庝簡涓涓嚱鏁幫紝浣嗘槸鍦ㄧ浉搴旂殑婧愭枃浠朵腑鍗存病鏈夊璇ュ嚱鏁拌繘琛屽畾涔夛紝鍒欎細鍑虹幇涓?#8220;瑙e喅鐨勫閮ㄧ鍙?#8221;錛坲nresolved external symbol 錛夐敊璇傚彟澶栵紝褰撲竴涓嚱鏁拌皟鐢ㄤ簡澶栭儴鐨勪竴涓簱鏂囦歡涓殑鍑芥暟錛屼絾鏄湪褰撳墠project鐨刾roperties涓茍娌℃湁灝嗘墍渚濊禆鐨勶紙dependent錛夊簱鏂囦歡鍖呭惈榪涙潵鏃訛紝涔熶細鍑虹幇榪欑閿欒銆?/p>

       緇間笂錛屽綋涓涓猻olution鍦╨inking鏃舵壘涓嶅埌鎵娑夊強鍒扮殑鍑芥暟鐨勫畾涔夋椂灝變細鍑虹幇“unresolved external symbol ”閿欒銆?/p>

      渚嬪錛屼笅闈㈡槸璋冪敤rapi鐨勫簱鏂囦歡rapi.lib涓殑鍑芥暟鏃訛紝鐢變簬娌℃湁灝唕api.lib鍖呭惈榪涙潵鑰屽鑷寸殑閾炬帴閿欒銆?/p>

1>Linking...
WMFileSync.obj : error LNK2019: unresolved external symbol _CeFindClose@4 referenced in function "public: virtual long __stdcall CWMFileSync::IsFileExists(wchar_t *)" (?IsFileExists@CWMFileSync@@UAGJPA_W@Z)

       銆愯В鍐蟲柟妗堛?/span>

       1. Project -> ** Properties... -> Configuration Properties -> Linker -> Input -> Additional Dependencies -> rapi.lib

鍙﹀錛屽湪姝や箣鍓嶏紝榪橀渶娣誨姞rapi搴撶殑鐩稿簲鐩綍錛歍ools -> Options -> Projects and Solutions -> VC++ Directories -> Show Directories for -> 鍦↖nclude files涓坊鍔燙:\Program Files\Matrox Imaging\rapi\Include 浠ュ強 Tools -> Options -> Projects and Solutions -> VC++ Directories -> Show Directories for -> 鍦↙ibrary files涓坊鍔燙:\Program Files\Matrox Imaging\rapi\LIB銆傛坊鍔犵洰褰曠殑鐩殑鏄負浜嗕嬌VC鍦ㄨ皟鐢ㄧ浉搴斿簱鏂囦歡鏃朵笉蹇呮繪槸浣跨敤緇濆鍦板潃錛孷C鍙互閫氳繃鏂囦歡鍚嶅湪鎵鍖呭惈鐨勭洰褰曚腑榪涜鎼滅儲銆傝繖鏍鳳紝鍓嶉潰鐨剅api.lib灝變笉蹇呬嬌鐢ㄧ粷瀵瑰湴鍧浜嗐?/p>

       銆愮己鐐廣戝彲縐繪鎬у樊錛屽鏋滃皢鍘熷伐紼嬩腑鐨勬簮鏂囦歡鍜屽ご鏂囦歡涓殑鍐呭copy涓嬫潵閲嶆柊寤虹珛璇ュ伐紼嬫椂錛堜緥濡傦細鍦ㄧ數瀛愪功鎴栫綉緇滀笂鎵懼埌鐨勭▼搴忥級錛屼粛闇鑷繁鍦ㄥ伐紼嬩腑娣誨姞鐩綍鍙婃墍闇鐨勫簱鏂囦歡銆?/p>

       2. 鍦ㄧ▼搴忓墠鍔犲叆#pragma commet(lib, "rapi.lib")涔熷彲浠ヨ揪鍒扮浉鍚岀殑鏁堟灉銆?/span>



蹇冪窘 2011-01-24 21:58 鍙戣〃璇勮
]]>
window娑堟伅http://m.shnenglu.com/tdweng/articles/139241.html蹇冪窘蹇冪窘Mon, 24 Jan 2011 13:14:00 GMThttp://m.shnenglu.com/tdweng/articles/139241.htmlhttp://m.shnenglu.com/tdweng/comments/139241.htmlhttp://m.shnenglu.com/tdweng/articles/139241.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/139241.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/139241.htmlPreTranslateMessage鐨勭悊瑙?
    PreTranslateMessage鍙兘澶勭悊娑堟伅闃熷垪涓殑娑堟伅,涔熷氨鏄敱PostMessage鍙戝嚭鐨勬秷鎭?榧犳爣閿洏娑堟伅絳?
    SendMessage鍙戦佺殑娑堟伅騫朵笉鏀懼湪娑堟伅闃熷垪涓?鑰屾槸鐩存帴璋冪敤澶勭悊鍑芥暟榪涜澶勭悊,鎵浠ヨ繖縐嶆秷鎭敤PreTranslateMessage鐨勬崟鑾蜂笉鍒扮殑,濡俉M_KIllFOCUS鍜學M_SETFOCUS.
    SendMessage鐨勬秷鎭槸鐩存帴鎵ц澶勭悊鍑芥暟鐨?瀹冭絳夋秷鎭墽琛屽畬鎵嶈繑鍥?鎵ц瀹孲endMessage鍑芥暟);鑰孭ostMessage鍒欐妸娑堟伅鍙戦佸悗绔嬪嵆榪斿洖,鎶婃秷鎭寕鍒版秷鎭槦鍒椾腑絳夊緟鎵ц,鎵浠ヤ互涓嬬殑紼嬪簭鏄敊鐨?!
#include <windows.h>
int main()
{
  PostMessage(HWND_BROADCAST,WM_QUIT,0,0);
  return 0;
}

PostMessage灝嗘秷鎭疻M_QUIT鍙戦佸埌娑堟伅闃熷垪涓?鐢變簬PostMessage鐨勭珛鍗寵繑鍥?鍗崇粨鏉?灝辨墽琛屼笅涓鍙ヨ鍙ョ粨鏉熸暣涓▼搴?娑堟伅榪樻寕鍦ㄦ秷鎭槦鍒椾腑鏈鐞嗘晠鍑洪敊!!



蹇冪窘 2011-01-24 21:14 鍙戣〃璇勮
]]>
GetLastError榪斿洖鍊肩殑鎰忎箟http://m.shnenglu.com/tdweng/articles/138242.html蹇冪窘蹇冪窘Mon, 10 Jan 2011 04:00:00 GMThttp://m.shnenglu.com/tdweng/articles/138242.htmlhttp://m.shnenglu.com/tdweng/comments/138242.htmlhttp://m.shnenglu.com/tdweng/articles/138242.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/138242.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/138242.html闃呰鍏ㄦ枃

蹇冪窘 2011-01-10 12:00 鍙戣〃璇勮
]]>
CWnd銆丠WND銆丟etSafeHwnd() http://m.shnenglu.com/tdweng/articles/137781.html蹇冪窘蹇冪窘Fri, 31 Dec 2010 01:44:00 GMThttp://m.shnenglu.com/tdweng/articles/137781.htmlhttp://m.shnenglu.com/tdweng/comments/137781.htmlhttp://m.shnenglu.com/tdweng/articles/137781.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/137781.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/137781.html褰撴垜浠兂寰楀埌涓涓獥鍙e璞★紙CWnd鐨勬淳鐢熷璞★級鎸囬拡鐨勫彞鏌勶紙HWND錛夋椂錛屾渶瀹夊叏鐨勬柟娉曟槸浣跨敤GetSafeHwnd()鍑芥暟錛岄氳繃涓嬮潰鐨勪緥瀛愭潵鐪嬪叾鐞嗙敱錛?br>CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //甯屾湜鎵懼埌璧勬簮綆$悊鍣?br>HWND hwnd = pwnd->m_hwnd; //寰楀埌瀹冪殑HWND
榪欐牱鐨勪唬鐮佸綋寮濮嬪緱鍒扮殑pwnd涓虹┖鐨勬椂鍊欏氨浼氬嚭鐜頒竴涓?#8220;General protection error”,騫跺叧闂簲鐢ㄧ▼搴忥紝鍥犱負涓鑸笉鑳藉涓涓狽ULL鎸囬拡璁塊棶鍏舵垚鍛橈紝濡傛灉鐢ㄤ笅闈㈢殑浠g爜錛?br>CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //甯屾湜鎵懼埌璧勬簮綆$悊鍣?br>HWND hwnd = pwnd->GetSafeHwnd(); //寰楀埌瀹冪殑HWND
灝變笉浼氬嚭鐜伴棶棰橈紝鍥犱負灝界褰損wnd鏄疦ULL鏃訛紝GetSafeHwnd浠嶇劧鍙互鐢紝鍙槸榪斿洖NULL錛岄氳繃GetSafeHwnd()鐨勫疄鐜頒唬鐮佸氨鏇存竻妤氫簡錛?br>_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const
{
return this == NULL?NULL:m_hWnd;
}

浣犵湅鏈夊緢澶氬嚱鏁扮殑鍙傛暟瑕佹眰HWND,瀹冨氨鍙互媧句笂鐢ㄥ満浜?
HWND hwnd;
CWnd* pWnd;
pWnd=((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
hwnd=pWnd->GetDlgItem(IDC_EDIT2)->GetSafeHwnd();
::SetWindowText(hwnd,m_strResult);
杞澆:http://hi.baidu.com/johnleeqq/blog/item/ae746a5088f4535f1138c2b2.html

蹇冪窘 2010-12-31 09:44 鍙戣〃璇勮
]]>
CString璇︾粏璁茶В http://m.shnenglu.com/tdweng/articles/136133.html蹇冪窘蹇冪窘Sat, 11 Dec 2010 03:53:00 GMThttp://m.shnenglu.com/tdweng/articles/136133.htmlhttp://m.shnenglu.com/tdweng/comments/136133.htmlhttp://m.shnenglu.com/tdweng/articles/136133.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/136133.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/136133.html閲婃斁鍓嶈█錛氫覆鎿嶄綔鏄紪紼嬩腑鏈甯哥敤涔熸渶鍩烘湰鐨勬搷浣滀箣涓銆?鍋氫負VC紼嬪簭鍛橈紝鏃犺鏄彍楦熸垨楂樻墜閮芥浘鐢ㄨ繃Cstring銆傝屼笖濂藉儚瀹為檯緙栫▼涓緢闅劇寰楀紑瀹冿紙铏界劧瀹冧笉鏄爣鍑嗭跡++涓殑搴擄級銆傚洜涓篗FC涓彁渚涚殑榪欎釜綾誨鎴戜滑鎿嶄綔瀛椾覆瀹炲湪澶柟渚夸簡錛孋String涓嶄粎鎻愪緵鍚勭涓板瘜鐨勬搷浣滃嚱鏁般佹搷浣滅閲嶈澆錛屼嬌鎴戜滑浣跨敤璧蜂覆璧鋒潵鏇磋薄basic涓偅鏍風洿瑙傦紱鑰屼笖瀹冭繕鎻愪緵浜嗗姩鎬佸唴瀛樺垎閰嶏紝浣挎垜浠噺灝戜簡澶氬皯瀛楃涓叉暟緇勮秺鐣岀殑闅愭偅銆備絾鏄紝鎴戜滑鍦ㄤ嬌鐢ㄨ繃紼嬩腑涔熶綋浼氬埌CString綆鐩村お瀹規槗鍑洪敊浜嗭紝鑰屼笖鏈夌殑涓嶅彲鎹夋懜銆傛墍浠ユ湁璁稿楂樹漢绔欒繃鏉ワ紝寤鴻鎶涘純瀹冦?

 

鍦ㄦ錛屾垜涓漢璁や負錛欳String灝佽寰楃‘瀹炲緢瀹岀編錛屽畠鏈夎澶氫紭鐐癸紝濡?#8220;瀹規槗浣跨敤 錛屽姛鑳藉己錛屽姩鎬佸垎閰嶅唴瀛橈紝澶ч噺榪涜鎷瘋礉鏃跺畠寰堣兘鑺傜渷鍐呭瓨璧勬簮騫朵笖鎵ц鏁堢巼楂橈紝涓庢爣鍑嗭跡瀹屽叏鍏煎錛屽悓鏃舵敮鎸佸瀛楄妭涓庡瀛楄妭錛岀敱浜庢湁寮傚父鏈哄埗鎵浠ヤ嬌鐢ㄥ畠瀹夊叏鏂逛究” 鍏跺疄錛屼嬌鐢ㄨ繃紼嬩腑涔嬫墍浠ュ鏄撳嚭閿欙紝閭f槸鍥犱負鎴戜滑瀵瑰畠浜嗚В寰楄繕涓嶅錛岀壒鍒槸瀹冪殑瀹炵幇鏈哄埗銆傚洜涓烘垜浠腑鐨勫ぇ澶氭暟浜猴紝鍦ㄥ伐浣滀腑騫朵笉閭d箞鐖辨繁鍏ュ湴鍘葷湅鍏充簬瀹冪殑鏂囨。錛屼綍鍐靛畠榪樻槸鑻辨枃鐨勩?

鐢變簬鍓嶅嚑澶╂垜鍦ㄥ伐浣滀腑閬囧埌浜嗕竴涓湰涓嶆槸闂浣嗗嵈鐗瑰埆媯樻墜銆佺壒鍒毦瑙e喅鑰屼笖鑾悕鎯婅鐨勯棶棰樸傚ソ鏉ユ渶鍚庡彂鐜版槸鐢變簬CString寮曞彂鐨勩傛墍浠ユ病鍔炴硶錛屾垜鎶婃暣涓狢String鐨勫疄鐜板叏閮ㄧ湅浜嗕竴閬嶏紝鎵嶆厡鐒跺ぇ鎮燂紝騫跺交搴曞紕娓呬簡闂鐨勫師鍥?榪欎釜闂錛屾垜宸插湪csdn涓婂紑璐?銆傚湪姝わ紝鎴戞兂鎶婃垜鐨勪竴浜涘叧浜嶤String鐨勭煡璇嗘葷粨涓鐣紝浠ヤ緵浠栵紙濂癸級浜哄熼壌錛屼篃璁稿叾涓湁鎴戠悊瑙d笂鐨勯敊璇紝鏈涘彂鐜拌呰兘閫氱煡鎴戯紝涓嶈儨鎰熻阿銆?/p>

 

1錛?CString瀹炵幇鐨勬満鍒?

CString鏄氳繃“寮曠敤”鏉ョ鐞嗕覆鐨勶紝“寮曠敤”榪欎釜璇嶆垜鐩鎬俊澶у騫朵笉闄岀敓錛岃薄Window鍐呮牳瀵硅薄銆丆OM瀵硅薄絳夐兘鏄氳繃寮曠敤鏉ュ疄鐜扮殑銆傝孋String涔熸槸閫氳繃榪欐牱鐨勬満鍒舵潵綆$悊鍒嗛厤鐨勫唴瀛樺潡銆傚疄闄呬笂CString瀵硅薄鍙湁涓涓寚閽堟垚鍛樺彉閲?鎵浠ヤ換浣旵String瀹炰緥鐨勯暱搴﹀彧鏈?瀛楄妭.

鍗? int len = sizeof(CString);//len絳変簬4

榪欎釜鎸囬拡鎸囧悜涓涓浉鍏崇殑寮曠敤鍐呭瓨鍧楋紝濡傚浘: CString str("abcd");

‘A’

‘B’

‘C’

‘D’

   0

0x04040404 head閮紝涓哄紩鐢ㄥ唴瀛樺潡鐩稿叧淇℃伅

 

str 0x40404040

姝e洜涓哄姝わ紝涓涓繖鏍風殑鍐呭瓨鍧楀彲琚涓狢String鎵寮曠敤錛屼緥濡備笅鍒椾唬鐮侊細

CString str("abcd");

CString a = str;

CString b(str);

CString c;

c = b;

涓婇潰浠g爜鐨勭粨鏋滄槸錛氫笂闈㈠洓涓璞?str,a,b,c)涓殑鎴愬憳鍙橀噺鎸囬拡鏈夌浉鍚岀殑鍊鹼紝閮戒負0x40404040.鑰岃繖鍧楀唴瀛樺潡鎬庝箞鐭ラ亾鏈夊灝戜釜CString寮曠敤瀹冨憿錛熷悓鏍鳳紝瀹冧篃浼氳褰曚竴浜涗俊鎭傚琚紩鐢ㄦ暟錛屼覆闀垮害錛屽垎閰嶅唴瀛橀暱搴︺?/p>

榪欏潡寮曠敤鍐呭瓨鍧楃殑緇撴瀯瀹氫箟濡備笅錛?/p>

struct CStringData

{

long nRefs; //琛ㄧず鏈夊灝戜釜CString 寮曠敤瀹? 4

int nDataLength; //涓插疄闄呴暱搴? 4

int nAllocLength; //鎬誨叡鍒嗛厤鐨勫唴瀛橀暱搴︼紙涓嶈榪欏ご閮ㄧ殑12瀛楄妭錛? 4

};

鐢變簬鏈変簡榪欎簺淇℃伅錛孋String灝辮兘姝g‘鍦板垎閰嶃佺鐞嗐侀噴鏀懼紩鐢ㄥ唴瀛樺潡銆?/p>

濡傛灉浣犳兂鍦ㄨ皟璇曠▼搴忕殑鏃跺欒幏寰楄繖浜涗俊鎭傚彲浠ュ湪Watch紿楀彛閿叆涓嬪垪琛ㄨ揪寮忥細

(CStringData*)((CStringData*)(this->m_pchData)-1)鎴?/p>

(CStringData*)((CStringData*)(str.m_pchData)-1)//str涓烘寚CString瀹炰緥

 

姝e洜涓洪噰鐢ㄤ簡榪欐牱鐨勫ソ鏈哄埗錛屼嬌寰桟String鍦ㄥぇ閲忔嫹璐濇椂錛屼笉浠呮晥鐜囬珮錛岃屼笖鍒嗛厤鍐呭瓨灝戙?/p>

 

 

2錛嶭PCTSTR 涓?GetBuffer(int nMinBufLength)

榪欎袱涓嚱鏁版彁渚涗簡涓庢爣鍑咰鐨勫吋瀹硅漿鎹€傚湪瀹為檯涓嬌鐢ㄩ鐜囧緢楂橈紝浣嗗嵈鏄渶瀹規槗鍑洪敊鐨勫湴鏂廣傝繖涓や釜鍑芥暟瀹為檯涓婅繑鍥炵殑閮芥槸鎸囬拡錛屼絾瀹冧滑鏈変綍鍖哄埆鍛紵浠ュ強璋冪敤瀹冧滑鍚庯紝騫曞悗鏄仛浜嗘庢牱鐨勫鐞嗚繃紼嬪憿錛?/p>

(1) LPCTSTR 瀹冪殑鎵ц榪囩▼鍏跺疄寰堢畝鍗曪紝鍙槸榪斿洖寮曠敤鍐呭瓨鍧楃殑涓插湴鍧銆?瀹冩槸浣滀負鎿嶄綔絎﹂噸杞芥彁渚涚殑錛屾墍浠ュ湪浠g爜涓湁鏃跺彲浠ラ殣寮忚漿鎹紝鑰屾湁鏃跺嵈闇寮哄埗杞埗銆傚錛?/span>

CString str;

const char* p = (LPCTSTR)str;

//鍋囪鏈夎繖鏍風殑涓涓嚱鏁幫紝Test(const char* p)錛?浣犲氨鍙互榪欐牱璋冪敤

Test(str);//榪欓噷浼氶殣寮忚漿鎹負LPCTSTR

(2) GetBuffer(int nMinBufLength) 瀹冪被浼鹼紝涔熶細榪斿洖涓涓寚閽堬紝涓嶈繃瀹冩湁鐐瑰樊鍒?榪斿洖鐨勬槸LPTSTR

(3) 榪欎袱鑰呭埌搴曟湁浣曚笉鍚屽憿錛熸垜鎯沖憡璇夊ぇ瀹訛紝鍏舵湰璐ㄤ笂瀹屽叏涓嶄竴鏍鳳紝涓鑸LPCTSTR杞崲鍚庡彧搴旇褰撳父閲忎嬌鐢紝鎴栬呭仛鍑芥暟鐨勫叆鍙傦紱鑰孏etBuffer(...)鍙栧嚭鎸囬拡鍚庯紝鍙互閫氳繃榪欎釜鎸囬拡鏉ヤ慨鏀歸噷闈㈢殑鍐呭錛屾垨鑰呭仛鍑芥暟鐨勫嚭鍙傘備負浠涔堝憿錛熶篃璁哥粡甯告湁榪欐牱鐨勪唬鐮侊細

CString str("abcd");

char* p = (char*)(const char*)str;

p[2] = 'z';

鍏跺疄錛屼篃璁告湁榪欐牱鐨勪唬鐮佸悗錛屼綘鐨勭▼搴忓茍娌℃湁閿欙紝鑰屼笖紼嬪簭涔熻繍琛屽緱鎸哄ソ銆備絾瀹冨嵈鏄潪甯稿嵄闄╃殑銆傚啀鐪?/p>

CString str("abcd");

CString test = str;

....

char* p = (char*)(const char*)str;

p[2] = 'z';

strcpy(p, "akfjaksjfakfakfakj");//榪欎笅瀹岃泲浜?

浣犵煡閬撴鏃訛紝test涓殑鍊兼槸澶氬皯鍚楋紵絳旀鏄?abzd"銆傚畠涔熻窡鐫鏀瑰彉浜嗭紝榪欎笉鏄綘鎵鏈熸湜鍙戠敓鐨勩備絾涓轟粈涔堜細榪欐牱鍛紵浣犵◢寰兂鎯沖氨浼氭槑鐧斤紝鍓嶉潰璇磋繃錛屽洜涓篊String鏄寚鍚戝紩鐢ㄥ潡鐨勶紝str涓巘est鎸囧悜鍚屼竴鍧楀湴鏂?褰撲綘p[2]='z'鍚庯紝褰撶劧test涔熶細闅忕潃鏀瑰彉銆傛墍浠ョ敤瀹冨仛LPCTSTR鍋氳漿鎹㈠悗錛屼綘鍙兘鍘昏榪欏潡鏁版嵁錛屽崈涓囧埆鍘繪敼鍙樺畠鐨勫唴瀹廣?/p>

 

鍋囧鎴戞兂鐩存帴閫氳繃鎸囬拡鍘諱慨鏀規暟鎹殑璇濓紝閭f庢牱鍔炲憿錛熷氨鏄敤GetBuffer(...).鐪嬩笅榪頒唬鐮侊細

CString str("abcd");

CString test = str;

....

char* p = str.GetBuffer(20);

p[2] = 'z'; // 鎵ц鍒版錛岀幇鍦╰est涓煎嵈浠嶆槸"abcd"

strcpy(p, "akfjaksjfakfakfakj"); // 鎵ц鍒版錛岀幇鍦╰est涓艱繕鏄?abcd"

涓轟粈涔堜細榪欐牱錛熷叾瀹濭etBuffer(20)璋冪敤鏃訛紝瀹冨疄闄呬笂鍙﹀寤虹珛浜嗕竴鍧楁柊鍐呭潡瀛橈紝騫跺垎閰?0瀛楄妭闀垮害鐨刡uffer錛岃屽師鏉ョ殑鍐呭瓨鍧楀紩鐢ㄨ鏁頒篃鐩稿簲鍑?. 鎵浠ユ墽琛屼唬鐮佸悗str涓巘est鏄寚鍚戜簡涓ゅ潡涓嶅悓鐨勫湴鏂癸紝鎵浠ョ浉瀹夋棤浜嬨?/p>

(4) 涓嶈繃榪欓噷榪樻湁涓鐐規敞鎰忎簨欏癸細灝辨槸str.GetBuffer(20)鍚庯紝str鐨勫垎閰嶉暱搴︿負20錛屽嵆鎸囬拡p瀹冩墍鎸囧悜鐨刡uffer鍙湁20瀛楄妭闀匡紝緇欏畠璧嬪兼椂錛屽垏涓嶅彲瓚呰繃錛屽惁鍒欑伨闅劇浣犱笉榪滀簡錛涘鏋滄寚瀹氶暱搴﹀皬浜庡師鏉ヤ覆闀垮害錛屽GetBuffer(1),瀹為檯涓婂畠浼氬垎閰?涓瓧鑺傞暱搴︼紙鍗沖師鏉ヤ覆闀垮害錛夛紱鍙﹀錛屽綋璋冪敤GetBuffer(...)鍚庡茍鏀瑰彉鍏跺唴瀹癸紝涓瀹氳璁板緱璋冪敤ReleaseBuffer(),榪欎釜鍑芥暟浼氭牴鎹覆鍐呭鏉ユ洿鏂板紩鐢ㄥ唴瀛樺潡鐨勫ご閮ㄤ俊鎭?/span>

(5) 鏈鍚庤繕鏈変竴娉ㄦ剰浜嬮」錛岀湅涓嬭堪浠g爜錛?/p>

char* p = NULL;

const char* q = NULL;

{

CString str = "abcd";

q = (LPCTSTR)str;

p = str.GetBuffer(20);

AfxMessageBox(q);// 鍚堟硶鐨?/p>

strcpy(p, "this is test");//鍚堟硶鐨勶紝

}

AfxMessageBox(q);// 闈炴硶鐨勶紝鍙兘瀹岃泲

strcpy(p, "this is test");//闈炴硶鐨勶紝鍙兘瀹岃泲

榪欓噷瑕佽鐨勫氨鏄紝褰撹繑鍥炶繖浜涙寚閽堝悗錛?濡傛灉CString瀵硅薄鐢熷懡緇撴潫錛岃繖浜涙寚閽堜篃鐩稿簲鏃犳晥銆?/p>

 

3錛庢嫹璐?& 璧嬪?& "寮曠敤鍐呭瓨鍧? 浠涔堟椂鍊欓噴鏀撅紵

 

涓嬮潰婕旂ず涓孌典唬鐮佹墽琛岃繃紼?/span>

void Test()

{

CString str("abcd");

//str鎸囧悜涓寮曠敤鍐呭瓨鍧楋紙寮曠敤鍐呭瓨鍧楃殑寮曠敤璁℃暟涓?,闀垮害涓?,鍒嗛厤闀垮害涓?錛?/span>

CString a;

//a鎸囧悜涓鍒濆鏁版嵁鐘舵侊紝

a = str;

//a涓巗tr鎸囧悜鍚屼竴寮曠敤鍐呭瓨鍧楋紙寮曠敤鍐呭瓨鍧楃殑寮曠敤璁℃暟涓?,闀垮害涓?,鍒嗛厤闀垮害涓?錛?/span>

CString b(a);

//a銆乥涓巗tr鎸囧悜鍚屼竴寮曠敤鍐呭瓨鍧楋紙寮曠敤鍐呭瓨鍧楃殑寮曠敤璁℃暟涓?,闀垮害涓?,鍒嗛厤闀垮害涓?錛?/span>

{

LPCTSTR temp = (LPCTSTR)a;

//temp鎸囧悜寮曠敤鍐呭瓨鍧楃殑涓查鍦板潃銆傦紙寮曠敤鍐呭瓨鍧楃殑寮曠敤璁℃暟涓?,闀垮害涓?,鍒嗛厤闀垮害涓?錛?/span>

CString d = a;

//a銆乥銆乨涓巗tr鎸囧悜鍚屼竴寮曠敤鍐呭瓨鍧楋紙寮曠敤鍐呭瓨鍧楃殑寮曠敤璁℃暟涓?, 闀垮害涓?,鍒嗛厤闀垮害涓?錛?/span>

b = "testa";

//榪欐潯璇彞瀹為檯鏄皟鐢–String::operator=(CString&)鍑芥暟銆?b鎸囧悜涓鏂板垎閰嶇殑寮曠敤鍐呭瓨鍧椼傦紙鏂板垎閰嶇殑寮曠敤鍐呭瓨鍧楃殑 寮曠敤璁℃暟涓?, 闀垮害涓?, 鍒嗛厤闀垮害涓?錛?/span>

//鍚屾椂鍘熷紩鐢ㄥ唴瀛樺潡寮曠敤璁℃暟鍑?. a銆乨涓巗tr浠嶆寚鍚戝師 寮曠敤鍐呭瓨鍧楋紙寮曠敤鍐呭瓨鍧楃殑寮曠敤璁℃暟涓?,闀垮害涓?,鍒嗛厤闀垮害涓?錛?

}

//鐢變簬d鐢熷懡緇撴潫錛岃皟鐢ㄦ瀽鏋勫嚱鏁幫紝瀵艱嚦寮曠敤璁℃暟鍑?錛堝紩鐢ㄥ唴瀛樺潡鐨勫紩鐢ㄨ鏁頒負2,闀垮害涓?,鍒嗛厤闀垮害涓?錛?/span>

LPTSTR temp = a.GetBuffer(10);

//姝よ鍙ヤ篃浼氬鑷撮噸鏂板垎閰嶆柊鍐呭瓨鍧椼倀emp鎸囧悜鏂板垎閰嶅紩鐢ㄥ唴瀛樺潡鐨勪覆棣栧湴鍧錛堟柊 鍒嗛厤鐨勫紩鐢ㄥ唴瀛樺潡鐨勫紩鐢ㄨ鏁頒負1,闀垮害涓?,鍒嗛厤闀垮害涓?0錛?/span>

//鍚屾椂鍘熷紩鐢ㄥ唴瀛樺潡寮曠敤璁℃暟鍑?. 鍙湁str浠?鎸囧悜鍘熷紩鐢ㄥ唴瀛樺潡 錛堝紩鐢ㄥ唴瀛樺潡鐨勫紩鐢ㄨ鏁頒負1, 闀垮害涓?, 鍒嗛厤闀垮害涓?錛?

strcpy(temp, "temp");

//a鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡鐨勫紩鐢ㄨ鏁頒負1,闀垮害涓?,鍒嗛厤闀垮害涓?0 a.ReleaseBuffer();//娉ㄦ剰:a鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡鐨勫紩鐢ㄨ鏁頒負1,闀垮害涓?,鍒嗛厤闀垮害涓?0

}

//鎵ц鍒版錛屾墍鏈夌殑灞閮ㄥ彉閲忕敓鍛藉懆鏈熼兘宸茬粨鏉熴傚璞tr a b 鍚勮嚜璋冪敤鑷繁鐨勬瀽鏋勬瀯

//鍑芥暟錛屾墍鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡涔熺浉搴斿噺1

//娉ㄦ剰錛宻tr a b 鎵鍒嗗埆鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡鐨勮鏁板潎涓?,榪欏鑷存墍鍒嗛厤鐨勫唴瀛樺潡閲婃斁

//CString鍒嗛厤鐨勫唴瀛樺湪鍫嗛噷錛屽彧鏈夎繖鍧?nbsp;寮曠敤鍐呭瓨鍧楃殑璁℃暟鍧囦負0錛屾墠閲婃斁鍐呭瓨

閫氳繃瑙傚療涓婇潰鎵ц榪囩▼錛屾垜浠細鍙戠幇CString铏界劧鍙互澶氫釜瀵硅薄鎸囧悜鍚屼竴寮曠敤鍐呭潡瀛橈紝浣嗘槸瀹冧滑鍦ㄨ繘琛屽悇縐嶆嫹璐濄佽祴鍊煎強鏀瑰彉涓插唴瀹規椂錛屽畠鐨勫鐞嗘槸寰堟櫤鑳藉茍涓旈潪甯稿畨鍏ㄧ殑錛屽畬鍏ㄥ仛鍒頒簡浜掍笉騫叉秹銆佷簰涓嶅獎鍝嶃傚綋鐒跺繀欏昏姹備綘鐨勪唬鐮佷嬌鐢ㄦ紜伆褰擄紝鐗瑰埆鏄疄闄呬嬌鐢ㄤ腑浼氭湁鏇村鏉傜殑鎯呭喌錛屽鍋氬嚱鏁板弬鏁般佸紩鐢ㄣ佸強鏈夋椂闇淇濆瓨鍒癈StringList褰撲腑錛屽鏋滃摢鎬曟湁涓灝忓潡鍦版柟浣跨敤涓嶅綋錛屽叾緇撴灉涔熶細瀵艱嚧鍙戠敓涓嶅彲棰勭煡鐨勯敊璇?/p>

 

5 FreeExtra()鐨勪綔鐢?/strong>

鐪嬭繖孌典唬鐮?/p>

(1) CString str("test");

(2) LPTSTR temp = str.GetBuffer(50);

(3) strcpy(temp, "there are 22 character");

(4) str.ReleaseBuffer();

(5) str.FreeExtra();

涓婇潰浠g爜鎵ц鍒扮(4)琛屾椂錛屽ぇ瀹墮兘鐭ラ亾str鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡璁℃暟涓?,闀垮害涓?2,鍒嗛厤闀垮害涓?0. 閭d箞鎵цstr.FreeExtra()鏃訛紝瀹冧細閲婃斁鎵鍒嗛厤鐨勫浣欑殑鍐呭瓨銆?寮曠敤鍐呭瓨鍧楄鏁頒負1,闀垮害涓?2,鍒嗛厤闀垮害涓?2)

 

6 Format(...) 涓?FormatV(...)

榪欐潯璇彞鍦ㄤ嬌鐢ㄤ腑鏄渶瀹規槗鍑洪敊鐨勩傚洜涓哄畠鏈瀵屾湁鎶宸фэ紝涔熺浉褰撶伒媧匯傚湪榪欓噷錛屾垜娌℃墦綆楀瀹冪粏緇嗗垎鏋愶紝瀹為檯涓妔printf(...)鎬庝箞鐢紝瀹冨氨鎬庝箞鐢ㄣ傛垜鍙彁閱掍嬌鐢ㄦ椂闇娉ㄦ剰涓鐐癸細灝辨槸瀹冪殑鍙傛暟鐨勭壒孌婃э紝鐢變簬緙栬瘧鍣ㄥ湪緙栬瘧鏃跺茍涓嶈兘鍘繪牎楠屾牸寮忎覆鍙傛暟涓庡搴旂殑鍙樺厓鐨勭被鍨嬪強闀垮害銆傛墍浠ヤ綘蹇呴』瑕佹敞鎰忥紝涓よ呬竴瀹氳瀵瑰簲涓婏紝

鍚﹀垯灝變細鍑洪敊銆傚錛?/p>

CString str;

int a = 12;

str.Format("first:%l, second: %s", a, "error");//result?璇曡瘯

 

7 LockBuffer() 涓?UnlockBuffer()

欏懼悕鎬濊錛岃繖涓や釜鍑芥暟鐨勪綔鐢ㄥ氨鏄寮曠敤鍐呭瓨鍧楄繘琛屽姞閿佸強瑙i攣銆備絾浣跨敤瀹冩湁浠涔堜綔鐢ㄥ強鎵ц榪囧畠鍚庡CString涓叉湁浠涔堝疄璐ㄤ笂鐨勫獎鍝嶃傚叾瀹炴尯綆鍗曪紝鐪嬩笅闈唬鐮?

(1) CString str("test");

(2) str.LockBuffer();

(3) CString temp = str;

(4) str.UnlockBuffer();

(5) str.LockBuffer();

(6) str = "error";

(7) str.ReleaseBuffer();

鎵ц瀹?3)鍚庯紝涓庨氬父鎯呭喌涓嬩笉鍚岋紝temp涓巗tr騫朵笉鎸囧悜鍚屼竴寮曠敤鍐呭瓨鍧椼備綘鍙互鍦╳atch紿楀彛鐢ㄨ繖涓〃杈懼紡(CStringData*)((CStringData*)(str.m_pchData)-1)鐪嬬湅銆?/p>

鍏跺疄鍦╩sdn涓湁璇存槑錛?/p>

While in a locked state, the string is protected in two ways:

 

No other string can get a reference to the data in the locked string, even if that string is assigned to the locked string.

The locked string will never reference another string, even if that other string is copied to the locked string.

 

8 CString 鍙槸澶勭悊涓插悧錛?/strong>

涓嶅錛孋String涓嶅彧鏄兘鎿嶄綔涓詫紝鑰屼笖榪樿兘澶勭悊鍐呭瓨鍧楁暟鎹傚姛鑳藉畬鍠勫惂錛佺湅榪欐浠g爜

char p[20];

for(int loop=0; loop<sizeof(p); loop++)

{

p[loop] = 10-loop;

}

CString str((LPCTSTR)p, 20);

char temp[20];

memcpy(temp, str, str.GetLength());

str瀹屽叏鑳藉杞澆鍐呭瓨鍧梡鍒板唴瀛樺潡temp涓傛墍浠ヨ兘鐢–String鏉ュ鐞嗕簩榪涘埗鏁版嵁

 

8 AllocSysString()涓嶴etSysString(BSTR*)

榪欎袱涓嚱鏁版彁渚涗簡涓蹭笌BSTR鐨勮漿鎹€備嬌鐢ㄦ椂欏繪敞鎰忎竴鐐癸細褰撹皟鐢ˋllocSysString()鍚庯紝欏昏皟鐢ㄥ畠SysFreeString(...)

 

9 鍙傛暟鐨勫畨鍏ㄦ楠?/strong>

鍦∕FC涓彁渚涗簡澶氫釜瀹忔潵榪涜鍙傛暟鐨勫畨鍏ㄦ鏌ワ紝濡傦細ASSERT. 鍏朵腑鍦–String涓篃涓嶄緥澶栵紝鏈夎澶氳繖鏍風殑鍙傛暟媯楠岋紝鍏跺疄榪欎篃璇存槑浜嗕唬鐮佺殑瀹夊叏鎬ч珮錛屽彲鏈夋椂鎴戜滑浼氬彂鐜拌繖寰堢儲錛屼篃瀵艱嚧Debug涓嶳elease鐗堟湰涓嶄竴鏍鳳紝濡傛湁鏃剁▼搴廌ebug閫氭甯革紝鑰孯elease鍒欑▼搴忓穿婧冿紱鑰屾湁鏃舵伆鐩稿弽錛孌ebug涓嶈錛孯elease琛屻傚叾瀹炴垜涓漢璁や負錛屾垜浠CString鐨勪嬌鐢ㄨ繃紼嬩腑錛屽簲鍔涙眰浠g爜璐ㄩ噺楂橈紝涓嶈兘鍦―ebug鐗堟湰涓嚭鐜頒換浣曟柇璦妗嗭紝鍝時elease榪愯浼間箮鐪嬭搗鏉ヤ竴鍒囨甯搞備絾寰堜笉瀹夊叏銆傚涓嬩唬鐮侊細

(1) CString str("test");

(2) str.LockBuffer();

(3) LPTSTR temp = str.GetBuffer(10);

(4) strcpy(temp, "error");

(5) str.ReleaseBuffer();

(6) str.ReleaseBuffer();//鎵ц鍒版鏃訛紝Debug鐗堟湰浼氬脊鍑洪敊妗?/p>

 

10 CString鐨勫紓甯稿鐞?/p>

鎴戝彧鎯沖己璋冧竴鐐癸細鍙湁鍒嗛厤鍐呭瓨鏃訛紝鎵嶆湁鍙兘瀵艱嚧鎶涘嚭CMemoryException.

鍚屾牱錛屽湪msdn涓殑鍑芥暟澹版槑涓紝娉ㄦ湁throw( CMemoryException)鐨勫嚱鏁伴兘鏈夐噸鏂板垎閰嶆垨璋冩暣鍐呭瓨鐨勫彲鑳姐?/p>

 

11 璺ㄦā鍧楁椂鐨凜string銆傚嵆涓涓狣LL鐨勬帴鍙e嚱鏁頒腑鐨勫弬鏁頒負CString&鏃訛紝瀹冧細鍙戠敓鎬庢牱鐨勭幇璞°傝В絳旀垜閬囧埌鐨勯棶棰樸傛垜鐨勯棶棰樺師鏉ュ凡緇忓彂璐達紝鍦板潃涓猴細

http://www.csdn.net/expert/topic/741/741921.xml?temp=.2283136

 

鏋勯犱竴涓繖鏍稢String瀵硅薄鏃訛紝濡侰String str錛屼綘鍙煡閬撴鏃剁殑str鎵鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡鍚楋紵涔熻浣犱細璁や負瀹冩寚鍚慛ULL銆傚叾瀹炰笉瀵癸紝濡傛灉榪欐牱鐨勮瘽錛孋String鎵閲囩敤鐨勫紩鐢ㄦ満鍒剁鐞嗗唴瀛樺潡灝變細鏈夐夯鐑︿簡錛屾墍浠String鍦ㄦ瀯閫犱竴涓┖涓茬殑瀵硅薄鏃訛紝瀹冧細鎸囧悜涓涓浐瀹氱殑鍒濆鍖栧湴鍧錛岃繖鍧楁暟鎹殑澹版槑濡備笅錛?/p>

AFX_STATIC_DATA int _afxInitData[] = {-1,0,0,0};

綆瑕佹弿榪版鎷竴涓嬶細褰撴煇涓狢String瀵硅薄涓茬疆絀虹殑璇濓紝濡侲mpty(),CString a絳夛紝瀹冪殑鎴愬憳鍙橀噺m_pchData灝變細鎸囧悜_afxInitData榪欎釜鍙橀噺鐨勫湴鍧銆傚綋榪欎釜CString瀵硅薄鐢熷懡鍛ㄦ湡緇撴潫鏃訛紝姝e父鎯呭喌涓嬪畠浼氬幓瀵規墍鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡璁℃暟鍑?錛屽鏋滃紩鐢ㄨ鏁頒負0(鍗蟲病鏈変換浣旵String寮曠敤瀹冩椂)錛屽垯閲婃斁榪欏潡寮曠敤鍐呭瓨銆傝岀幇鍦ㄧ殑鎯呭喌鏄鏋淐String鎵鎸囧悜鐨勫紩鐢ㄥ唴瀛樺潡鏄垵濮嬪寲鍐呭瓨鍧楁椂錛屽垯涓嶄細閲婃斁浠諱綍鍐呭瓨銆?/p>

 

璇翠簡榪欎箞澶氾紝榪欎笌鎴戦亣鍒扮殑闂鏈変粈涔堝叧緋誨憿錛熷叾瀹炲叧緋誨ぇ鐫鍛紵鍏剁湡姝e師鍥犲氨鏄鏋渆xe妯″潡涓巇ll妯″潡鏈変竴涓槸static緙栬瘧榪炴帴鐨勮瘽銆傞偅涔堣繖涓狢String鍒濆鍖栨暟鎹湪exe妯″潡涓巇ll妯″潡涓湁涓嶅悓鐨勫湴鍧錛屽洜涓簊tatic榪炴帴鍒欎細鍦ㄦ湰妯″潡涓湁涓浠芥簮浠g爜鐨勬嫹璐濄傚彟澶栦竴縐嶆儏鍐碉紝濡傛灉涓や釜妯″潡閮芥槸share榪炴帴鐨勶紝CString鐨勫疄鐜頒唬鐮佸垯鍦ㄥ彟涓涓崟鐙殑dll涓疄鐜幫紝鑰孉FX_STATIC_DATA鎸囧畾鍙橀噺鍙涓嬈★紝鎵浠ヤ袱涓ā鍧椾腑_afxInitData鏈夌浉鍚岀殑鍦板潃銆?/p>

鐜板湪闂瀹屽叏鏄庣櫧浜嗗惂錛佷綘鍙互鑷繁鍘繪紨紺轟竴涓嬨?/p>

__declspec (dllexport) void test(CString& str)

{

str = "abdefakdfj";//濡傛灉鏄痵tatic榪炴帴錛屽茍涓斾紶鍏ョ殑str涓虹┖涓茬殑璇濓紝榪欓噷鍑洪敊銆?/p>

}

 

鏈鍚庝竴鐐規兂娉曪細鍐欏緱榪欓噷錛屽叾瀹濩String涓繕鏈夎澶氭妧宸фх殑濂戒笢涓滐紝鎴戝茍娌″幓瑙i噴銆傚寰堝閲嶈澆鐨勬搷浣滅銆佹煡鎵劇瓑銆傛垜璁や負榪樻槸璇︾粏鐪嬬湅msdn錛岃繖鏍蜂篃璁鎬細姣旀垜璁茬殑濂藉浜嗐傛垜鍙晶閲嶉偅浜涘彲鑳戒細鍑洪敊鐨勬儏鍐點傚綋鐒訛紝濡傛垜涓婇潰鍙欒堪涓湁閿欒錛屾暚璇烽珮鎵嬫寚鐐癸紝涓嶈儨鎰熻阿錛?br />

msdn錛?a >http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cstring_class_members.asp



蹇冪窘 2010-12-11 11:53 鍙戣〃璇勮
]]>
Visual Assist X 瀹岀編鐮磋Вhttp://m.shnenglu.com/tdweng/articles/124388.html蹇冪窘蹇冪窘Mon, 23 Aug 2010 02:49:00 GMThttp://m.shnenglu.com/tdweng/articles/124388.htmlhttp://m.shnenglu.com/tdweng/comments/124388.htmlhttp://m.shnenglu.com/tdweng/articles/124388.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/124388.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/124388.html
浣滆?pengkuny

鎴戣垂浜嗕節鐗涗簩铏庝箣鍔?鎵嶆壘鍒拌繖涓牬瑙g増.涓鑸殑璇曠敤鐗堝彧鑳戒嬌鐢?0澶?榪欎釜鏃跺?浣犲啀閲嶈Visual Assist X鏄病鏈夌敤鐨?Visual Assist X闃茬牬瑙g殑宸ヤ綔鍋氬緱姣旇緝濂?闄ら潪浣犻噸瑁呯郴緇?鑰屼笖Visual Assist X鐨勭増鏈洿鏂板揩,鐗堟湰鍙風悍綣佸鏉?涓鍛寵拷姹傛柊鐗堟湰鐨勭殑浜虹粡甯稿洜涓烘壘涓嶅埌娉ㄥ唽鐮?瀵艱嚧鍘熺増鏈篃涓嶈兘浣跨敤.

鎵浠?浠ュ悗鍙敤榪欎釜:

[璇瘋煩榪囩洿鎺ョ湅鍚庤]

絎竴姝?
涓嬭澆Visual Assist X .V10.3.1549
瀹樻柟鍘熺増涓嬭澆:
http://www.wholetomato.com/downloads/VA_X_Setup1549.exe
鐮磋В鏂囦歡:
http://revenge.crackdb.com/rlz/visual.assist.x.10.3.1549.0.cracked.dll-rev.zip

絎簩姝?
灝嗗師鏉ュ畨瑁呯殑鐗堟湰鍒犻櫎錛?br>鐒跺悗鍦ㄦ敞鍐岃〃涓皢甯︽湁“tomato”鍏抽敭瀛楀茍涓旂‘淇濅笉鏄叾浠栬蔣浠剁殑閿拰鍊奸兘鍒犻櫎錛?br>
絎笁姝?
瀹夎1549鐨勫師鐗堬紝瑁呭畬鍚庝笉瑕侀┈涓婅繍琛孷C錛?/span>

絎洓姝?
灝嗙牬瑙f枃浠?span style="COLOR: red">鏇挎崲
濂斤紝
鐒跺悗鍐嶅皢娉ㄥ唽琛ㄦ枃浠?span style="COLOR: red">瀵煎叆銆?br>
絎簲姝?
OK!

[鍚庤]:
鏍規嵁softgenie鐨勫洖澶? 榪欎釜鐮磋В鐗堝仛寰楀茍涓嶅ソ,鏈夋煇浜涘姛鑳藉け鏁? 騫朵笖甯稿父瀵艱嚧紼嬪簭鏃犲搷搴?
濡傛灉浣犱嬌鐢ㄧ殑鏄疺C6鐨勮瘽,鍙互鐢ㄨ繖涓綉欏電殑Visual Assist 6.0,鐮磋В鐨勬瘮杈冨ソ(浣嗗湪VS 2005涓敤涓嶄簡):
http://www.vckbase.com/tools/listtools.asp?tclsid=109.
瑁呬箣鍓嶄粛鐒惰鍏堢粡榪囧墠闈㈡墍榪扮殑絎簩姝?/strong>,娓呯悊娉ㄥ唽琛?


蹇冪窘 2010-08-23 10:49 鍙戣〃璇勮
]]>
AFX_MANAGE_STATE(AfxGetStaticModuleState());http://m.shnenglu.com/tdweng/articles/120339.html蹇冪窘蹇冪窘Wed, 14 Jul 2010 07:39:00 GMThttp://m.shnenglu.com/tdweng/articles/120339.htmlhttp://m.shnenglu.com/tdweng/comments/120339.htmlhttp://m.shnenglu.com/tdweng/articles/120339.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/120339.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/120339.htmlAFX_MANAGE_STATE(AfxGetStaticModuleState());//鐢ㄤ簬妯″潡鍒囨崲鏃剁殑鐘舵佷繚鎶わ紝

1.AfxGetStaticModuleState()鎸囧悜褰撳墠妯″潡鐘舵?

2.褰撳墠鍑芥暟璋冪敤緇撴潫鍚庡師妯″潡鐨勭姸鎬佽嚜鍔ㄨ鎭㈠錛?

3.鐢ㄤ簬DLL涓墍璋冪敤MFC鍑芥暟銆佺被銆佽祫婧愭椂鐨勬ā鍧楃姸鎬佸垏鎹?



蹇冪窘 2010-07-14 15:39 鍙戣〃璇勮
]]>
浠庤闂?xcccccccc寮傚父璇磋搗http://m.shnenglu.com/tdweng/articles/119404.html蹇冪窘蹇冪窘Tue, 06 Jul 2010 01:07:00 GMThttp://m.shnenglu.com/tdweng/articles/119404.htmlhttp://m.shnenglu.com/tdweng/comments/119404.htmlhttp://m.shnenglu.com/tdweng/articles/119404.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/119404.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/119404.html鍦╒C6涓嬭皟璇曠▼搴忥紝鍙兘浼氶亣鍒拌濡傛寚浠ゅ紩鐢?#8220;0xcccccccc”,璇ュ唴瀛樹笉鑳戒負Read鐨勬姤閿?/p>

絀跺叾鍘熷洜錛屽氨debug鐗堜腑鐨勫爢鏍堜腑鐨勫眬閮ㄥ彉閲忥紙鍖呮嫭鎸囬拡錛夊湪鏄庣‘鍒濆鍖栦箣鍓嶉兘鐢?x0cc榪涜鍒濆鍖栵紝鍥犳錛屾湭鍒濆鍖栨椂鍊欑殑鎸囬拡鏄寚鍚戝湴鍧0x0cccccccc鐨勶紝鑰岃繖孌靛湴鍧涓鏉ユ槸澶勪簬鍐呮牳鍦板潃絀洪棿錛屼竴鑸殑搴旂敤紼嬪簭鏄棤鏉冭闂殑錛屼笂闈㈢殑鎶ラ敊灝辨槸榪欐牱浜х敓鐨勩傚洜姝わ紝涓鏃﹂亣鍒頒笂榪版姤閿欙紝鍩烘湰鍙互璁ゅ畾紼嬪簭涓嚭鐜頒簡閲庢寚閽堛?/p>

鍙﹀涓鏂歸潰cc瀵瑰簲鐫int 3璋冭瘯涓柇錛屽爢鏍堜腑鐨勫瓨鏀劇殑灞閮ㄦ暟鎹竴鑸儏鍐典笅鏄彧璇葷殑錛屽綋鍙戠敓鎰忓鎵ц鍫嗘爤閲岄潰鐨勬暟鎹氨浼氬紩鍙戣璋冭瘯涓柇銆?/p>

鍙互璁や負0x0cc灝辨槸鏈夌壒孌婂惈涔夌殑鍗犱綅絎︼紝瀵逛簬鎸囬拡鑰岃█錛屽畠璺烴ULL鏄竴涓剰鎬濓紝鍏跺畠鍏鋒湁鐗規畩鎰忎箟鐨勫崰浣嶇榪樻湁錛?/p>

0xcdcdcdcd - Created but not initialized

0xdddddddd - Deleted

0xfeeefeee - Freed memory set by NT's heap manager

0xcccccccc - Uninitialized locals in VC6 when you compile w/ /GZ

0xabababab - Memory following a block allocated by LocalAlloc()



蹇冪窘 2010-07-06 09:07 鍙戣〃璇勮
]]>
UNREFERENCED_PARAMETER鐨勭敤澶?/title><link>http://m.shnenglu.com/tdweng/articles/113526.html</link><dc:creator>蹇冪窘</dc:creator><author>蹇冪窘</author><pubDate>Sun, 25 Apr 2010 11:24:00 GMT</pubDate><guid>http://m.shnenglu.com/tdweng/articles/113526.html</guid><wfw:comment>http://m.shnenglu.com/tdweng/comments/113526.html</wfw:comment><comments>http://m.shnenglu.com/tdweng/articles/113526.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/tdweng/comments/commentRss/113526.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/tdweng/services/trackbacks/113526.html</trackback:ping><description><![CDATA[<p>浣滅敤錛氬憡璇夌紪璇戝櫒錛屽凡緇忎嬌鐢ㄤ簡璇ュ彉閲忥紝涓嶅繀媯嫻嬭鍛婏紒</p> <p>鍦╒C緙栬瘧鍣ㄤ笅錛屽鏋滄偍鐢ㄦ渶楂樼駭鍒繘琛岀紪璇戯紝緙栬瘧鍣ㄥ氨浼氬緢鑻涘埢鍦版寚鍑烘偍鐨勯潪甯哥粏灝忕殑璀﹀憡銆傚綋浣犵敓鍛戒簡涓涓彉閲忥紝鑰屾病鏈変嬌鐢ㄦ椂錛岀紪璇戝櫒灝變細鎶ヨ鍛婏細</p> <p>“warning C4100: ''錛革幾錛革幾'' : unreferenced formal parameter.” </p> <p>鎵浠ワ紝涓轟簡璁╃紪璇戝櫒涓嶅繀媯嫻嬩綘鐨勮鍛婏紝灝變嬌鐢║NREFERENCED_PARAMETER璇彞銆傛瘮濡傦細</p> <p>int SomeFunction(int arg1, int arg2)<br>{<br>  UNREFERENCED_PARAMETER(arg2)<br>  ...<br>}</p> <p><br>===============================================================================</p> <p>    [ 緲昏瘧鏂囨。 鏈枃閫傚悎涓駭璇昏?宸查槄璇?439嬈?]   鏂囨。 浠g爜 宸ュ叿   </p> <p>C++ At Work 涓撴爮...<br>鏈紩鐢ㄥ弬鏁幫紝娣誨姞浠誨姟鏍忓懡浠ゅ強鍏跺畠...</p> <p>鍘熻憲錛歅aul DiLascia<br>緲昏瘧錛歂orthTibet</p> <p>涓嬭澆婧愪唬鐮侊細CAtWork0505.exe (171KB) <br>鍘熸枃鍑哄錛歎nreferenced Parameters, Adding Task Bar Commands, and More </p> <p>鏈紩鐢ㄥ弬鏁?br>娣誨姞浠誨姟鏍忓懡浠?/p> <p><br> 鎴戠湅鍒拌繃涓浜?C++ 浠g爜閽堝娌℃湁浣跨敤榪囩殑鍙傛暟鐢?UNREFERENCED_PARAMETER錛屼緥濡傦細</p> <p><br>int SomeFunction(int arg1, int arg2)<br>{<br>  UNREFERENCED_PARAMETER(arg2)<br>  ...<br>}<br>鎴戣繕鐪嬪埌榪囪繖鏍風殑浠g爜錛?<br>int SomeFunction(int arg1, int /* arg2 */)<br>{<br>  ...<br>}<br>浣犺兘瑙i噴瀹冧滑鐨勫樊鍒悧錛熷摢涓縐嶇敤娉曟洿濂斤紵</p> <p>Judy McGeough</p> <p> 鏄晩錛佷負浠涔堝憿錛熻鎴戜滑浠?UNREFERENCED_PARAMETER 寮濮嬪惂銆傝繖涓畯鍦?winnt.h 涓畾涔夊涓嬶細 <br>#define UNREFERENCED_PARAMETER(P) (P)銆銆鎹㈠彞璇濊 UNREFERENCED_PARAMETER 灞曞紑浼犻掔殑鍙傛暟鎴栬〃杈懼紡銆傚叾鐩殑鏄伩鍏嶇紪璇戝櫒鍏充簬鏈紩鐢ㄥ弬鏁扮殑璀﹀憡銆傝澶氱▼搴忓憳錛屽寘鎷垜鍦ㄥ唴錛屽枩嬈㈢敤鏈楂樼駭鍒殑璀﹀憡 Level 4錛?W4錛夎繘琛岀紪璇戙侺evel 4 灞炰簬“鑳借瀹夊叏蹇界暐鐨勪簨浠?#8221;鐨勮寖鐣淬傝櫧鐒跺畠浠彲鑳戒嬌浣犻毦鍫紝浣嗗緢灝戠牬鍧忎綘鐨勪唬鐮併備緥濡傦紝鍦ㄤ綘鐨勭▼搴忎腑鍙兘浼氭湁榪欐牱涓浜涗唬鐮佽錛?/p> <p>int x=1;銆銆浣嗕綘浠庢病鐢ㄥ埌榪?x銆備篃璁歌繖涓琛屾槸浣犱互鍓嶄嬌鐢?x 鏃剁暀涓嬫潵鐨勶紝鍙垹闄や簡浣跨敤瀹冪殑浠g爜錛岃屽繕浜嗗垹闄よ繖涓彉閲忋俉arning Level 4 鑳芥壘鍒拌繖浜涘皬楹葷儲銆傛墍浠ワ紝涓轟粈涔堜笉璁╃紪璇戝櫒甯姪浣犲畬鎴愬彲鑳芥槸鏈楂樼駭鍒殑涓撲笟鍖栧憿錛熺敤Level 4 緙栬瘧鏄睍紺轟綘宸ヤ綔鎬佸害鐨勪竴縐嶆柟寮忋傚鏋滀綘涓哄叕浼椾嬌鐢ㄨ呯紪鍐欏簱錛孡evel 4 鍒欐槸紺句氦紺艱妭涓婇渶瑕佺殑銆備綘涓嶆兂寮鴻揩浣犵殑寮鍙戜漢鍛樹嬌鐢ㄤ綆綰ч夐」娓呮磥鍦扮紪璇戜粬浠殑浠g爜銆?br>銆銆闂鏄紝Level 4 瀹炲湪鏄お榪囦簬娉ㄦ剰緇嗚妭錛屽湪 Level 4 涓婏紝緙栬瘧鍣ㄨ繛鏈紩鐢ㄥ弬鏁拌繖鏍鋒棤浼ゅぇ闆呯殑浜嬫儏涔熻鎶辨紙褰撶劧錛岄櫎闈炰綘鐪熺殑鏈夋剰浣跨敤榪欎釜鍙傛暟錛岃繖鏃朵究鐩稿畨鏃犱簨錛夈傚亣璁句綘鏈変竴涓嚱鏁板甫鏉ヤ袱涓弬鏁幫紝浣嗕綘鍙嬌鐢ㄥ叾涓竴涓細</p> <p>int SomeFunction(int arg1, int arg2)<br>{<br>    return arg1+5;<br>}浣跨敤 /W4錛岀紪璇戝櫒鎶辨細</p> <p>“warning C4100: ''arg2'' : unreferenced formal parameter.”涓轟簡楠楄繃緙栬瘧鍣紝浣犲彲浠ュ姞涓?UNREFERENCED_PARAMETER(arg2)銆傜幇鍦ㄧ紪璇戝櫒鍦ㄧ紪璇戜綘鐨勫紩鐢?arg2 鐨勫嚱鏁版椂渚夸細浣忓彛銆傚茍涓旂敱浜庤鍙ワ細</p> <p>arg2;瀹為檯涓婁笉鍋氫換浣曚簨鎯咃紝緙栬瘧鍣ㄤ笉浼氫負涔嬩駭鐢熶換浣曚唬鐮侊紝鎵浠ュ湪絀洪棿鍜屾ц兘涓婁笉浼氭湁浠諱綍鎹熷け銆?/p> <p>銆銆緇嗗績鐨勪漢鍙兘浼氶棶錛氭棦鐒朵綘涓嶄嬌鐢?arg2錛岄偅褰撳垵涓轟綍瑕佸0鏄庡畠鍛紵閫氬父鏄洜涓轟綘瀹炵幇鏌愪釜鍑芥暟浠ユ弧瓚蟲煇浜汚PI鍥烘湁鐨勭講鍚嶉渶瑕侊紝渚嬪錛孧FC鐨?OnSize 澶勭悊渚嬬▼鐨勭講鍚嶅繀欏昏鍍忎笅闈㈣繖鏍鳳細</p> <p>void OnSize(UINT nType, int cx, int cy);銆銆榪欓噷 cx/cy 鏄獥鍙f柊鐨勫/楂橈紝nType 鏄竴涓被浼?SIZE_MAXIMIZED 鎴?SIZE_RESTORED 榪欐牱鐨勭紪鐮侊紝琛ㄧず紿楀彛鏄惁鏈澶у寲鎴栨槸甯歌澶у皬銆備竴鑸綘涓嶄細鍦ㄦ剰 nType錛屽彧浼氬叧娉?cx 鍜?xy銆傛墍浠ュ鏋滀綘鎯崇敤 /W4錛屽垯蹇呴』浣跨敤 UNREFERENCED_PARAMETER(nType)銆侽nSize 鍙槸涓婂崈涓?MFC 鍜?Windows 鍑芥暟涔嬩竴銆傜紪鍐欎竴涓熀浜?Windows 鐨勭▼搴忥紝鍑犱箮涓嶅彲鑳戒笉紕板埌鏈紩鐢ㄥ弬鏁般?br>銆銆璇翠簡榪欎箞澶氬叧浜?UNREFERENCED_PARAMETER 鍐呭銆侸udy 鍦ㄥス鐨勯棶棰樹腑榪樻彁鍒頒簡鍙︿竴涓?C++ 紼嬪簭鍛樺父鐢ㄧ殑騫朵笖鍏朵綔鐢ㄤ笌 UNREFERENCED_PARAMETER 鐩稿悓鐨勮瘈紿嶏紝閭e氨鏄敞閲婂嚱鏁扮講鍚嶄腑鐨勫弬鏁板悕錛?/p> <p>void CMyWnd::OnSize(UINT /* nType */, <br>int cx, int cy)<br>{<br>}銆銆鐜板湪 nType 鏄湭鍛藉悕鍙傛暟錛屽叾鏁堟灉灝卞儚浣犳暡鍏?OnSize(UINT, int cx, int cy)涓鏍楓傞偅涔堢幇鍦ㄧ殑鍏抽敭闂鏄細浣犲簲璇ヤ嬌鐢ㄥ摢縐嶆柟娉曗斺旀湭鍛藉悕鍙傛暟錛岃繕鏄?UNREFERENCED_PARAMETER錛?br>銆銆澶у鏁版儏鍐典笅錛屼袱鑰呮病浠涔堝尯鍒紝浣跨敤鍝竴涓函綺規槸椋庢牸闂銆傦紙浣犲枩嬈綘鐨?java 鍜栧暋鏄粦鑹茶繕鏄ザ娌圭殑棰滆壊錛燂級浣嗘垜璁や負鑷沖皯鏈変竴縐嶆儏鍐靛繀欏諱嬌鐢?UNREFERENCED_PARAMETER銆傚亣璁句綘鍐沖畾紿楀彛涓嶅厑璁告渶澶у寲銆傞偅涔堜綘渚跨鐢?Maximize 鎸夐挳錛屼粠緋葷粺鑿滃崟涓垹闄わ紝鍚屾椂闃繪姣忎竴涓敤鎴瘋兘澶熸渶澶у寲紿楀彛鐨勬搷浣溿傚洜涓轟綘鏄亸鎵х媯錛堝ぇ澶氭暟濂界殑紼嬪簭鍛橀兘鏄亸鎵х媯錛夛紝浣犳坊鍔犱竴涓?ASSERT 錛堟柇璦錛変互紜繚浠g爜鎸夌収浣犵殑鎰忓浘榪愯錛?/p> <p>void CMyWnd::OnSize(UINT nType, int cx, int cy)<br>{<br>    ASSERT(nType != SIZE_MAXIMIZE);<br>    ... // use cx, cy<br>}銆銆璐ㄦ鍥㈤槦绔敖鎵鑳戒互鍚勭鏂瑰紡榪愯浣犵殑紼嬪簭錛孉SSERT 浠庢病鏈夊脊鍑鴻繃錛屼簬鏄綘璁や負緙栬瘧鐢熸垚 Release 鐗堟湰鏄畨鍏ㄧ殑銆備絾鏄鏃?_DEBUG 瀹氫箟娌℃湁浜嗭紝ASSERT(nType != SIZE_MAXIMIZE)灞曞紑涓?((void)0)錛屽茍涓?nType 涓涓嬪瓙鎴愪簡涓涓湭寮曠敤鍙傛暟錛佽繖鏍瘋繘鍏ヤ綘騫插噣鐨勭紪璇戙備綘鏃犳硶娉ㄩ噴鎺夊弬鏁拌〃涓殑 nType錛屽洜涓轟綘瑕佸湪 ASSERT 涓嬌鐢ㄥ畠銆備簬鏄湪榪欑鎯呭喌涓嬧斺斾綘鍞竴浣跨敤鍙傛暟鐨勫湴鏂規槸鍦?ASSERT 涓垨鍏跺畠 _DEBUG 鏉′歡浠g爜涓斺斿彧鏈?UNREFERENCED_PARAMETER 浼氫繚鎸佺紪璇戝櫒鍦?Debug 鍜?Release 鐢熸垚妯″紡涓嬮兘娌℃湁闂銆傜煡閬撲簡鍚楋紵<br>銆銆緇撴潫璁ㄨ涔嬪墠錛屾垜鎯寵繕鏈変竴涓棶棰樻垜娌℃湁鎻愬強錛屽氨鏄綘鍙互璞′笅闈㈣繖鏍風敤 pragma 鎸囦護鎶戝埗鍗曚竴鐨勭紪璇戝櫒璀﹀憡錛?/p> <p>#pragma warning( disable : 4100 )4100 鏄湭寮曠敤鍙傛暟鐨勫嚭閿欎唬鐮併俻ragma 鎶戝埗鍏朵綑鏂囦歡/妯″潡鐨勮璀﹀憡銆傜敤涓嬮潰鏂規硶鍙互閲嶆柊鍚敤榪欎釜璀﹀憡錛?/p> <p>#pragma warning( default : 4100 )銆銆涓嶇鎬庢牱錛岃緝濂界殑鏂規硶鏄湪紱佺敤鐗瑰畾鐨勮鍛婁箣鍓嶄繚瀛樻墍鏈夌殑璀﹀憡鐘舵侊紝鐒跺悗錛岀瓑浣犲仛瀹屼箣鍚庡啀鍥炲埌浠ュ墠鐨勯厤緗傞偅鏍鳳紝浣犱究鍥炲埌鐨勪互鍓嶇殑鐘舵侊紝榪欎釜鐘舵佷笉涓瀹氭槸緙栬瘧鍣ㄧ殑榛樿鐘舵併?br>銆銆鎵浠ヤ綘鑳借薄涓嬮潰榪欐牱鍦ㄤ唬鐮佺殑鍓嶅悗鐢?pragma 鎸囦護鎶戝埗鍗曚釜鍑芥暟鐨勬湭寮曠敤鍙傛暟璀﹀憡錛?/p> <p>#pragma warning( push ) <br>#pragma warning( disable : 4100 )<br>void SomeFunction(...)<br>{<br>}<br>#pragma warning( pop )銆銆褰撶劧錛屽浜庢湭寮曠敤鍙傛暟鑰岃█錛岃繖縐嶆柟娉曟湭鍏嶅啑闀匡紝浣嗗浜庡叾瀹冪被鍨嬬殑璀﹀憡鏉ヨ鍙兘灝變笉鏄繖鏍蜂簡銆傚簱鐢熸垚鑰呴兘鏄敤 #pragma warning 鏉ラ樆濉炶鍛婏紝榪欐牱浠栦滑鐨勪唬鐮佸彲浠ョ敤 /W4 榪涜娓呮磥緙栬瘧銆侻FC 涓厖婊′簡榪欐牱鐨?pragmas 鎸囦護銆傝繕鏈夊ソ澶氱殑 #pragma warning 閫夐」鎴戞病鏈夊湪鏈枃璁ㄨ銆傛湁鍏沖畠浠殑淇℃伅璇峰弬鑰冪浉鍏蟲枃妗c?/p> <p><br> 鎴戞敞鎰忓埌涓浜涘簲鐢ㄧ▼搴忥紝褰撳彸閿崟鍑誨叾浠誨姟鏍忔渶灝忓寲鎸夐挳鏃訛紝鍦ㄥ脊鍑虹殑涓婁笅鏂囪彍鍗曚腑鍏峰鐗規畩鐨勫懡浠ゃ備緥濡傦紝WinAmp錛堜竴涓祦琛岀殑濯掍綋鎾斁鍣級鏈変竴涓檮鍔犵殑 “WinAmp”鑿滃崟欏癸紝鍏朵腑鏄?WinAmp 鐗規湁鐨勫懡浠ゃ傛垜濡備綍鍦ㄧ▼搴忕殑浠誨姟鏍忔寜閽腑娣誨姞鎴戣嚜宸辯殑鑿滃崟欏癸紵</p> <p><br>Jirair Osygian</p> <p> 鎴戝垱寤轟簡涓涓畝鍗曠殑 MFC SDI 紼嬪簭錛岃紼嬪簭鐢ㄨ〃鍗曡鍥撅紙Form View錛夋樉紺轟竴涓鏁板櫒銆傛垜鎯抽氳繃鍙抽敭鍗曞嚮浠誨姟鏍忎笂紼嬪簭鐨勬渶灝忓寲鎸夐挳鏉ユ帶鍒跺惎鍔?鍋滄榪欎釜璁℃暟鍣ㄣ傚湪琛ㄥ崟瑙嗗浘涓婇氳繃鎸夐挳鎺у埗鐨勫惎鍔?鍋滄鍔熻兘榪愯姝e父錛屾垜涔熻兘灝嗗惎鍔?鍋滄鍛戒護鍔犲埌緋葷粺鑿滃崟銆備絾鎴戝崟鍑誨姞鍏ョ殑緋葷粺鑿滃崟鏃舵病鍙嶅簲銆傛垜濡備綍澶勭悊榪欎簺瀹氬埗鐨勭郴緇熻彍鍗曟秷鎭紵</p> <p>Monicque Sharman<br> 鎴戜袱涓棶棰樹竴璧峰洖絳旓紝Jirair 闂鐨勭瓟妗堝緢綆鍗曪細褰撲綘鍙抽敭鍗曞嚮浠誨姟鏍忎笂搴旂敤紼嬪簭鐨勬渶灝忓寲鎸夐挳鏃訛紝鐢ㄦ埛鐪嬪埌鐨勮彍鍗曚笌鐢ㄦ埛鍗曞嚮宸︿笂瑙掑簲鐢ㄧ▼搴忔爣棰樻爮鍥炬爣鎴栨寜 Alt+Space 鎵鐪嬪埌鐨勮彍鍗曚竴鏍楓傚 Figure 1 鎵紺恒傝繖涓彍鍗曡縐頒負緋葷粺鑿滃崟錛屽叾涓寘鎷懡浠ゅ錛氳繕鍘熴佹渶灝忓寲銆佹渶澶у寲鍜屽叧闂瓑銆?/p> <p><br>Figure 1 緋葷粺鑿滃崟</p> <p>銆銆浣犲彲浠ヨ皟鐢?::GetSystemMenu 鏉ヨ幏寰楁緋葷粺鑿滃崟錛岀劧鍚庡彲浠ユ坊鍔犮佸垹闄ゆ垨淇敼鑿滃崟欏廣備綘鐢氳嚦鍙互閫氳繃鍏蟲帀 WS_SYSMENU 紿楀彛鍒涘緩寮忔牱鏍囧織鎴?PreCreateWindow 铏氬嚱鏁版潵瀹屽叏灞忚斀鎺夎繖涓郴緇熻彍鍗曘備絾涓嶈浣犲仛浠涔堬紝褰撶敤鎴峰彸閿崟鍑諱換鍔℃爮涓婂簲鐢ㄧ▼搴忕殑鏈灝忓寲鎸夐挳鏃訛紝榪欎釜緋葷粺鑿滃崟榪樻槸浼氭樉紺哄嚭鏉ョ殑銆?br>銆銆鍒頒簡 Monicque 鐨勯棶棰橈細濡傛灉鍦ㄧ郴緇熻彍鍗曚腑娣誨姞鑷繁鐨勫懡浠わ紝MFC 鏄浣曞鐞嗗畠浠殑鍛紵濡傛灉鎸夊父瑙勬潵鍋?鈥斺斿湪鏌愪釜鍦版柟鍐欎竴涓?ON_COMMAND 澶勭悊鍣ㄥ茍灝嗗畠鍔犲埌娑堟伅鏄犲皠涓紝浣犱細鍙戠幇浣犵殑澶勭悊鍣ㄤ笉璧蜂綔鐢紝鎬庝箞浼氳繖鏍峰憿錛?br>銆銆閭f槸鍥犱負 Windows 鍜?MFC 澶勭悊緋葷粺鍛戒護鐨勬柟寮忎笌澶勭悊鏅氳彍鍗曞懡浠ょ殑鏂瑰紡涓嶄竴鏍楓傚綋鐢ㄦ埛璋冪敤紿椾綋涓殑甯歌鑿滃崟鍛戒護鎴栨寜閽椂錛學indows 鍚戜富紿楀彛鍙戦佷竴涓?WM_COMMAND 娑堟伅銆傚鏋滀綘浣跨敤 MFC錛岄偅涔堝叾鍛戒護璺敱鏈哄埗灝嗘崟鑾鋒娑堟伅騫墮氳繃鎿嶄綔緋葷粺灝嗗畠璺敱鍒拌鍛戒護鐨?ON_COMMAND 鍛戒護澶勭悊鍣ㄥ璞°傦紙鏈夊叧 MFC 鍛戒護澶勭悊鏈哄埗鐨勮緇嗗唴瀹癸紝鍙傝鎴戝湪 MSJ 1995騫?鏈堝彂琛ㄧ殑鏂囩珷錛?#8220;Meandering Through the Maze of MFC Message and Command Routing”錛夈?br>銆銆鐒惰岀郴緇熷懡浠や笉灞炰簬 WM_COMMAND 娑堟伅鑼冨洿銆傝屽睘浜庡彟澶栦竴涓彨鍋氣斺擶M_SYSCOMMAND 鐨勬秷鎭備笉璁哄懡浠D鏄湡姝g殑緋葷粺鍛戒護濡?SC_MINIMIZE 鍜?SC_CLOSE錛岃繕鏄綘鑷繁娣誨姞鐨勫叾瀹冨懡浠D閮芥槸濡傛銆備負浜嗗鐞嗙郴緇熻彍鍗曞懡浠わ紝浣犲繀欏誨鐞嗘樉寮忓鐞?WM_SYSCOMMAND 騫朵笖瑕侀夋嫨浣犺嚜宸辯殑鍛戒護 IDs銆傝繖灝遍渶瑕佷綘鍦ㄤ富紿楀彛娑堟伅鏄犲皠涓坊鍔燨N_WM_SYSCOMMAND錛屽畠鏈変竴涓鐞嗗嚱鏁板涓嬶細 <br>CMainFrame::OnSysCommand(UINT nID, LPARAM lp)<br>{<br>    if (nID==ID_MY_COMMAND) {<br>        ... // 澶勭悊瀹?br>        return 0;<br>    }</p> <p>    // 浼犻掑埌鍩虹被錛氳繖涓姝ュ緢閲嶈!<br>    return CFrameWnd::OnSysCommand(nID, lp);<br>}銆銆濡傛灉璇ュ懡浠や笉鏄綘鐨勶紝涓嶈蹇樹簡灝嗗畠浼犻掑埌浣犵殑鍩虹被澶勭悊鈥斺斿吀鍨嬪湴錛岄偅灝辨槸 CFrameWnd 鎴?CMDIFrameWnd銆傚惁鍒欙紝Windows 灝嗘棤娉曞緱鍒版娑堟伅錛屽茍涓斾細鐮村潖鍐呭緩鐨勫懡浠ゃ?br>銆銆鍦ㄤ富妗嗘灦涓鐞?WM_SYSCOMMAND 鍥虹劧鍙互錛屼絾榪欐牱鍋氭劅瑙夊お涓氫綑銆備負浠涔堣鐢ㄧ壒孌婄殑鏈哄埗鏉ュ鐞嗗憿錛熷氨鍥犱負瀹冧滑鏄郴緇熻彍鍗曞悧錛熷鏋滀綘鎯沖湪瑙嗗浘鎴栨枃妗e璞′腑澶勭悊緋葷粺鍛戒護浼氭庢牱鍛紵鏈変竴涓父瑙佺殑鍛戒護鏀懼埌浜嗙郴緇熻彍鍗曚腑錛屽畠灝辨槸“鍏充簬”錛圛D_APP_ABOUT錛夛紝澶у鏁?MFC 紼嬪簭閮芥槸鍦ㄥ簲鐢ㄧ▼搴忓璞′腑澶勭悊 ID_APP_ABOUT錛?/p> <p>void CMyApp::OnAppAbout()<br>{<br>    static CAboutDialog dlg;<br>    dlg.DoModal(); <br>}銆銆MFC 涓涓湡姝e緢閰風殑鐗規ф槸瀹冪殑鍛戒護璺敱緋葷粺錛屽畠浣垮緱璞?CMyApp 榪欐牱鐨勯潪紿楀彛瀵硅薄涔熻兘澶勭悊鑿滃崟鍛戒護銆傝澶氱▼搴忓憳鐢氳嚦閮戒笉浜嗚В鎬庝箞浼氭湁榪欐牱鐨勪緥澶栥傚鏋滀綘宸茬粡鍦ㄥ簲鐢ㄧ▼搴忓璞′腑澶勭悊 ID_APP_ABOUT錛岄偅鎶奍D_APP_ABOUT 娣誨姞鍒扮郴緇熻彍鍗曞悗錛屼負浠涔堣繕瑕佸幓瀹炵幇涓濂楀崟鐙殑鏈哄埗錛?br>銆銆澶勭悊澶栧姞緋葷粺鍛戒護鐨勬瘮杈冨ソ鐨勶紝鎴栬呰鏇?MFC 鐨勬柟娉曞簲璇ユ槸閫氳繃甯歌鐨勫懡浠よ礬鐢辨満鍒朵紶閫掑畠浠傜劧鍚庢寜 MFC 甯歌鏂規硶緙栧啓 ON_COMMAND 澶勭悊渚嬬▼鏉ュ鐞嗙郴緇熷懡浠ゃ備綘鐢氳嚦鍙互鐢?ON_UPDATE_COMMAND_UI 鏉ユ洿鏂頒綘鐨勭郴緇熻彍鍗曢」錛屼緥濡傜鐢ㄦ煇涓彍鍗曢」鎴栧湪鑿滃崟欏規梺杈規樉紺轟竴涓璁爣蹇椼?br>銆銆Figure 2 鏄垜鍐欑殑涓涓被錛孋SysCmdRouter錛岃繖涓被灝嗙郴緇熷懡浠よ漿鎴愬父瑙勫懡浠ゃ備負浜嗕嬌鐢ㄨ繖涓被錛屼綘瑕佸仛鐨勫彧鏄湪涓繪鏋朵腑瀹炰緥鍖?CSysCmdRouter錛屽茍浠?OnCreate 涓皟鐢ㄥ叾 Init 鏂規硶鍗沖彲錛?/p> <p>int CMainFrame::OnCreate(...)<br>{<br>    // 灝嗘垜鐨勮彍鍗曢」娣誨姞鍒扮郴緇熻彍鍗?br>    CMenu* pMenu = GetSystemMenu(FALSE);<br>    pMenu->AppendMenu(..ID_MYCMD1..);<br>    pMenu->AppendMenu(..ID_MYCMD2..);</p> <p>    // 閫氳繃 MFC 璺敱緋葷粺鍛戒護<br>    m_sysCmdHook.Init(this);<br>    return 0;<br>}銆銆涓鏃︿綘璋冪敤 CSysCmdRouter::Init錛屼綘渚垮彲浠ユ寜甯歌鏂瑰紡澶勭悊 ID_MYCMD1 鍜?ID_MYCMD2錛屼負 MFC 鍛戒護璺敱鏈哄埗涓殑浠諱綍瀵硅薄緙栧啓 ON_COMMAND 澶勭悊渚嬬▼鈥斺旇鍥撅紝鏂囨。錛屾鏋訛紝搴旂敤紼嬪簭鎴栭氳繃鏀瑰啓 OnCmdMsg 娣誨姞鐨勪換浣曞叾瀹冨懡浠ゅ璞°侰SysCmdRouter 榪樿浣犵敤 ON_UPDATE_COMMAND_UI 澶勭悊鍣ㄦ洿鏂扮郴緇熻彍鍗曘傚敮涓瑕佹敞鎰忕殑鏄‘淇濆懡浠Ds涓嶈涓庡叾瀹冭彍鍗曞懡浠わ紙闄ら潪浠栦滑紜疄浠h〃鐩稿悓鐨勫懡浠わ級鎴栧唴寤虹郴緇熷懡浠ゅ彂鐢熷啿紿侊紝鍐呭緩緋葷粺鍛戒護浠?SC_SIZE = 0xF000 寮濮嬨俈isual Studio .NET 鎸囧畾鐨勫懡浠?IDs 浠?0x8000 = 32768 寮濮嬶紝鎵浠ュ鏋滀綘璁?Visual Studio 鏉ユ寚瀹?IDs錛屽彧瑕佷笉瓚呰繃 0xF000-0x8000 = 0x7000 涓懡浠ゅ嵆鍙備篃灝辨槸鍗佽繘鍒剁殑 28,762銆傚鏋滀綘鐨勫簲鐢ㄧ▼搴忔湁瓚呰繃 28000 涓懡浠わ紝閭d箞浣犻渶瑕佸挩璇㈢紪紼嬬簿紲炵梾涓撳銆?br>銆銆CSysCmdRouter 鏄浣曞疄鐜板叾欖旀硶鐨勫憿錛熺畝鍗曪細瀹冧嬌鐢ㄦ垜閭d釜浠ュ墠涓撴爮涓棤澶勪笉鍦ㄧ殑 CSubclassWnd銆侰SubclassWnd 浣夸綘涓嶇敤浠庡叾媧劇敓渚胯兘瀛愮被鍖?MFC 紿楀彛瀵硅薄銆侰SysCmdRouter 媧劇敓鑷?CSubclassWnd 騫朵嬌鐢ㄥ畠瀛愮被鍖栦富妗嗘灦銆傚挨鍏舵槸瀹冩埅鑾峰彂閫佸埌妗嗘灦鐨?WM_SYSCOMMAND 娑堟伅銆傚鏋滃懡浠?ID 灞炰簬緋葷粺鍛戒護錛堝ぇ浜?SC_SIZE = 0xF000錛夛紝鍒?CSysCmdRouter 娌跨潃 Windows 涓璺紶閫掕娑堟伅錛涘惁鍒欎究鍚冩帀 WM_SYSCOMMAND 騫墮噸鏂板皢瀹冧綔涓?WM_COMMAND 鍙戦侊紝浜庢槸 MFC 鎸夌収鍏跺父瑙勮礬鐢辮繃紼嬶紝璋冪敤浣犵殑 ON_COMMAND 澶勭悊鍣ㄣ傚緢鑱槑錛屾槸涓嶆槸錛?br>銆銆閭d箞 ON_UPDATE_COMMAND_UI 澶勭悊鍣ㄥ憿錛烠SysCmdRouter 鏄浣曡瀹冨鐞嗙郴緇熻彍鍗曞懡浠ょ殑鍛紵寰堢畝鍗曘傚氨鍦?Windows 鏄劇ず鑿滃崟鍓嶏紝浠栧悜浣犵殑涓葷獥鍙e彂閫佷竴涓?WM_INITMENUPOPUP 娑堟伅銆傝繖鏄綘鏇存柊鑿滃崟欏圭殑鏈浣蟲椂鏈衡斺斿惎鐢ㄦ垨紱佺敤瀹冧滑錛屾坊鍔犳璁爣蹇楃瓑絳夈侻FC 涓烘瘡涓彍鍗曢」鍒涘緩涓涓?CCmdUI 瀵硅薄騫跺皢瀹冧紶閫掑埌浣犵殑娑堟伅鏄犲皠涓浉搴旂殑 ON_UPDATE_COMMAND_UI 澶勭悊鍣ㄣ備互瀹冧負鍙傛暟鐨?MFC 鍑芥暟鏄?CFrameWnd::OnInitMenuPopup錛岃繖涓嚱鏁版槸榪欐牱鐨勶細</p> <p>void CFrameWnd::OnInitMenuPopup(CMenu* pMenu, UINT nIndex, BOOL bSysMenu)<br>{<br>    if (bSysMenu)<br>    return; // don''t support system menu<br>    ...<br>}銆銆MFC 鍒濆鍖栫郴緇熻彍鍗曟椂涓嶅仛浠諱綍浜嬫儏銆備負浠涔堣鍘誨叧蹇冭繖縐嶄簨鍛紵涓囦竴浣犺璁?bSysMenu 涓?FALSE錛屽嵆浣挎槸緋葷粺鑿滃崟錛岄偅璇ユ庝箞鍔烇紵榪欐伆鎭版槸 CSysCmdRouter 鍋氱殑浜嬫儏銆傚畠鎴彇 WM_INITMENUPOPUP 騫舵竻闄?bSysMenu 鏍囧織錛屼篃灝辨槸 LPARAM 鐨?HIWORD錛?/p> <p>if (msg==WM_INITMENUPOPUP) {<br>    lp = LOWORD(lp); // (set HIWORD = 0)<br>}銆銆鐜板湪錛屽綋 MFC 鑾峰緱 WM_INITMENUPOPUP錛屽畠璁や負璇ヨ彍鍗曟槸甯歌鑿滃崟銆傚彧瑕佷綘鐨勫懡浠?IDs 涓庣湡姝g殑緋葷粺鑿滃崟涓嶅啿紿侊紝涓鍒囬兘榪愯寰楀緢濂姐傚鏋滀綘鏀瑰啓 OnInitMenuPopup錛屽敮涓涓㈠け鐨勪笢瑗挎槸涓嶈兘浠庝富紿楀彛鑿滃崟涓尯鍒嗙郴緇熻彍鍗曘傚樋錛屼綘涓嶈兘浠涔堥兘鎯寵錛侀氳繃鏀瑰啓 CWnd::WindowProc錛屼綘鎬繪槸鑳藉鐞?WM_INITMENUPOPUP 鐨勶紝鎴栦綘鎯寵鍖哄垎錛屽氨姣旇緝 HMENUs銆備絾浣犵‘瀹炰笉鐢ㄥ叧蹇冨懡浠ゆ潵鑷綍澶勩?/p> <p><br>Figure 3 浠誨姟鏍忚彍鍗?/p> <p>銆銆涓轟簡灞曠ず鎵鏈夌殑瀹炶返錛屾垜鍐欎簡涓涓皬嫻嬭瘯紼嬪簭錛?TBMenu銆傚鍥?Figure 3 鎵紺猴紝褰撲綘鍙抽敭鍗曞嚮浠誨姟鏍忎笂 TBMenu 鐨勬渶灝忓寲鎸夐挳錛屼究浼氭樉紺哄嚭鑿滃崟銆備綘鍙互鐪嬪埌鍦ㄨ彍鍗曞簳閮ㄦ湁涓や釜棰濆鐨勫懡浠ゃ俆BMenu 鐨?CMainFrame浠g爜濡?Figure 4 鎵紺恒備究鐭ラ亾鍦?OnCreate 鐨勪粈涔堝湴鏂規坊鍔犲懡浠ゅ茍鍦?CMainFrame 鐨勬秷鎭槧灝勪腑鐢?ON_COMMAND 浠ュ強 ON_UPDATE_COMMAND_UI 澶勭悊鍣ㄥ鐞嗗畠浠俆BMenu 鍦ㄥ叾搴旂敤紼嬪簭綾諱腑澶勭悊 ID_APP_ABOUT錛堜唬鐮佹湭鍒楀嚭錛夈侰SysCmdRouter 浣跨郴緇熷懡浠ょ殑宸ヤ綔鏈哄埗綾諱技鍏跺畠鍛戒護銆?/p> <p><br>璇村埌鍛戒護錛屾垜浠潵鐪嬬湅涓涓皬璧勬枡錛?/p> <p>銆銆鍦ㄦ垜涓鏈堜喚鐨勪笓鏍忎腑錛屾垜闂槸鍚︽湁浜虹煡閬?Ctrl+Alt+Del 鐨勭敱鏉ャ傛樉鐒訛紝鏈夊嚑涓鑰呯煡閬撳浣曚嬌鐢?Google錛屽洜涓轟粬浠彂緇欐垜鐨勬槸鐩稿悓鐨勯摼鎺ワ細銆婁粖鏃ョ編鍥姐嬩笂鐨勪竴綃囨枃绔狅細“Thank this guy for 'control-alt-delete'”錛屾垜鍦ㄤ竴鏈堝彂闂箣鍓嶅氨鍙戠幇浜嗚繖綃囨枃绔犮侰trl+Alt+Del 鏄敱涓涓悕鍙?David J. Bradley 鐨勪漢鍙戠幇鐨勶紝浠栧湪 IBM 宸ヤ綔榪囥?br>IBM 瑙夊緱搴旇鏈変竴縐嶆柟娉曚笉鐢ㄥ叧闂數婧愬氨鑳介噸緗紙reset錛夊叾鏂扮殑 PC 鏈恒備負浠涔堣涓撻棬鐢?Ctrl+Alt+Del 榪欎笁涓敭鍛紵浠庢妧鏈笂鏉ヨ錛孌avid 闇瑕佷嬌鐢ㄤ袱涓慨楗伴敭銆備粬鎯寵涓縐嶆病鏈変漢鍙兘鎰忓鏁插叆鐨勯敭緇勫悎銆傛墍浠ヤ粬閫夋嫨浜?<br>Ctrl+Alt 浣滀負淇グ閿紙姣?Shift 鐢ㄥ緱灝戯級鍜?Delete錛屾閿綅浜庨敭鐩樼殑鍙︿竴绔紝鎵浠ユ暡鍑?Ctrl+Alt+Del 闇瑕佷袱鍙墜錛岃嚦灝戝湪榪囧幓鏄繖鏍峰仛鐨勩?br>褰撲粖鐜頒唬閿洏鍦ㄥ彸杈逛篃鏈?Ctrl 鍜?Alt 閿傞噸鍚壒鎬х殑鍒濊》鏄負 IBM 鐨勪漢璁捐鐨勭瀵嗗畨鍏ㄥ嚭鍙o紝浣嗕笉鍙伩鍏嶅湴錛屽畠宸茬粡鎴愪負涓涓笉鏄瀵嗙殑縐樺瘑銆備竴鏃﹀紑鍙戜漢鍛樼煡閬撲簡瀹冿紝浠栦滑渚垮紑濮嬪憡璇夊鎴蜂嬌鐢ㄨ繖涓壒鎬ф潵瑙e喅鏈哄櫒鎸傝搗闂銆傞殢鐫鍘嗗彶鐨勫彂灞曪紝Ctrl+Alt+Del 琚漢浠翰鍒囧湴鎴愪負“涓夋寚鏁ぜ”錛屽嵆渚挎槸鍦ㄥ綋浠婄殑 Windows 涓粛鐒跺叿鏈夌敓鍛藉姏錛岀敤瀹冭皟鍑轟換鍔$鐞嗗櫒錛屼互渚夸綘鑳芥潃姝繪寕璧風殑浠誨姟鎴栫粓姝㈢郴緇燂紙鏇村鏈夊叧綾諱技 Ctrl+Alt+Del 瀹夊叏閿簭鍒楃殑鍐呭錛屽弬瑙佹湰鏈堢殑 Security Briefs 涓撴爮錛夈傞偅涔堬紝濡傛灉 Ctrl+Alt+Del 澶辮觸浜嗘庝箞鍔烇紵涓轟粈涔堜細澶辮觸錛岃鎸変綇瀹冧繚鎸?5 縐掗挓銆?br>銆銆David Bradley 鏄綋鍒濆緩绔?IBM 涓漢璁$畻鏈虹殑 12 涓伐紼嬪笀涔嬩竴銆備粬緙栧啓浜?ROM BIOS錛屾湁鍏?David 鐨勭畝浠嬶紝鍙傝 David J. Bradley銆?/p> <p>紲濈紪紼嬫剦蹇紒</p> <p>鎮ㄧ殑鎻愰棶鍜岃瘎璁哄彲鍙戦佸埌 Paul 鐨勪俊綆憋細<a href="mailto:cppqa@microsoft.com">cppqa@microsoft.com</a><br>銆<br> <br> 浣滆呯畝浠?br>銆銆Paul DiLascia 鏄竴鍚嶈嚜鐢變綔瀹訛紝欏鵑棶鍜?Web/UI 璁捐鑰呫備粬鏄奧riting Reusable Windows Code in C++銆嬩功錛圓ddison-Wesley, 1992錛夌殑浣滆呫傞氳繃 <a >http://www.dilascia.com</a> 鍙互鑾峰緱鏇村浜嗚В銆?銆 <br>鏈枃鍑鴻嚜 MSDN Magazine 鐨?May 2005 鏈熷垔錛屽彲閫氳繃褰撳湴鎶ユ憡鑾峰緱錛屾垨鑰呮渶濂芥槸 璁㈤槄 <br> </p> <p> </p> <p>鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/liuchanghe/archive/2006/12/31/1471302.aspx</a></p> <p><a ></a> </p> <img src ="http://m.shnenglu.com/tdweng/aggbug/113526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/tdweng/" target="_blank">蹇冪窘</a> 2010-04-25 19:24 <a href="http://m.shnenglu.com/tdweng/articles/113526.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>sscanf()鐨勪竴浜涗嬌鐢ㄨ鏄?http://m.shnenglu.com/tdweng/articles/113495.html蹇冪窘蹇冪窘Sun, 25 Apr 2010 02:47:00 GMThttp://m.shnenglu.com/tdweng/articles/113495.htmlhttp://m.shnenglu.com/tdweng/comments/113495.htmlhttp://m.shnenglu.com/tdweng/articles/113495.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/113495.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/113495.html
榪欓噷鏈変簺sscanf()鐨勪竴浜涗嬌鐢ㄨ鏄庯紝閮芥槸浠庤鍧涳紝Blog閲屾暣鐞嗗嚭鏉ョ殑銆備緵澶у浣跨敤銆?br>   閫氳繃瀛︿範鍜屼嬌鐢ㄤ釜浜鴻涓猴紝鍦ㄥ瓧絎︿覆鏍煎紡涓嶆槸寰堝鏉傦紝浣嗘槸涔熷茍涓嶇畝鍗曠殑鏃跺欑敤榪欎釜鍑芥暟姣旇緝鍚堥傦紝榪欎釜灝哄害灝辮闈犺嚜宸辨妸鎻′簡錛屽瓧絎︿覆涓嶆槸寰堝鏉傦紝浣嗚嚜宸卞啓涓鐞嗙殑鍑芥暟姣旇緝楹葷儲錛屾晥鐜囦篃涓嶉珮錛屽氨鐢ㄨ繖涓嚱鏁幫紝濡傛灉瀛楃涓插緢澶嶆潅錛岄偅灝辯敤姝e垯琛ㄨ揪寮忓惂銆?br>涓嶅璇翠簡錛岀湅鐪嬩笅闈㈣繖浜涗粙緇嶅拰鍒楀瓙鍚э紒
鍚嶇О:sscanf() - 浠庝竴涓瓧絎︿覆涓榪涗笌鎸囧畾鏍煎紡鐩哥鐨勬暟鎹?
鍑芥暟鍘熷瀷:
Int  sscanf( string str, string fmt, mixed var1, mixed var2 ... );
int  scanf( const char *format [,argument]... );
璇存槑錛?br>sscanf涓巗canf綾諱技錛岄兘鏄敤浜庤緭鍏ョ殑錛屽彧鏄悗鑰呬互灞忓箷(stdin)涓鴻緭鍏ユ簮錛屽墠鑰呬互鍥哄畾瀛楃涓蹭負杈撳叆婧愩?br>鍏朵腑鐨刦ormat鍙互鏄竴涓垨澶氫釜 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 闈?絎﹀彿}
鏀寔闆嗗悎鎿嶄綔錛?br>     %[a-z] 琛ㄧず鍖歸厤a鍒皕涓換鎰忓瓧絎︼紝璐┆鎬?灝藉彲鑳藉鐨勫尮閰?
     %[aB'] 鍖歸厤a銆丅銆?涓竴鍛橈紝璐┆鎬?br>     %[^a] 鍖歸厤闈瀉鐨勪換鎰忓瓧絎︼紝璐┆鎬?/div>
渚嬪瓙錛?br>1. 甯歌鐢ㄦ硶銆?br>    char buf[512] = {0};
    sscanf("123456 ", "%s", buf);
    printf("%s\n", buf);
緇撴灉涓猴細123456
2. 鍙栨寚瀹氶暱搴︾殑瀛楃涓層傚鍦ㄤ笅渚嬩腑錛屽彇鏈澶ч暱搴︿負4瀛楄妭鐨勫瓧絎︿覆銆?br>    sscanf("123456 ", "%4s", buf);
    printf("%s\n", buf);
緇撴灉涓猴細1234
3. 鍙栧埌鎸囧畾瀛楃涓烘鐨勫瓧絎︿覆銆傚鍦ㄤ笅渚嬩腑錛屽彇閬囧埌絀烘牸涓烘瀛楃涓層?br>    sscanf("123456 abcdedf", "%[^ ]", buf);
    printf("%s\n", buf);
緇撴灉涓猴細123456
 
4.  鍙栦粎鍖呭惈鎸囧畾瀛楃闆嗙殑瀛楃涓層傚鍦ㄤ笅渚嬩腑錛屽彇浠呭寘鍚?鍒?鍜屽皬鍐欏瓧姣嶇殑瀛楃涓層?br>    sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
    printf("%s\n", buf);
緇撴灉涓猴細123456abcdedf
 
5.  鍙栧埌鎸囧畾瀛楃闆嗕負姝㈢殑瀛楃涓層傚鍦ㄤ笅渚嬩腑錛屽彇閬囧埌澶у啓瀛楁瘝涓烘鐨勫瓧絎︿覆銆?br>    sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
    printf("%s\n", buf);
緇撴灉涓猴細123456abcdedf
6銆佺粰瀹氫竴涓瓧絎︿覆iios/12DDWDFF@122錛岃幏鍙?/ 鍜?@ 涔嬮棿鐨勫瓧絎︿覆錛屽厛灝?"iios/"榪囨護鎺夛紝鍐嶅皢闈?a href="mailto:'@'">'@'鐨勪竴涓插唴瀹歸佸埌buf涓?br>    sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
    printf("%s\n", buf);
緇撴灉涓猴細12DDWDFF
 
7銆佺粰瀹氫竴涓瓧絎︿覆““hello, world”錛屼粎淇濈暀world銆傦紙娉ㄦ剰錛?#8220;錛?#8221;涔嬪悗鏈変竴絀烘牸錛?/div>
    sscanf(“hello, world”,  "%*s%s",  buf);  
    printf("%s\n", buf);
緇撴灉涓猴細world
%*s琛ㄧず絎竴涓尮閰嶅埌鐨?s琚繃婊ゆ帀錛屽嵆hello琚繃婊や簡
濡傛灉娌℃湁絀烘牸鍒欑粨鏋滀負NULL銆?br>8銆?br> char *s="1try234delete5" 
鍒欙細
sscanf(s, "1%[^2]234%[^5]", s1, s2);
scanf鐨刦ormat涓嚭鐜扮殑闈炶漿鎹㈠瓧絎︼紙%涔嬪墠鎴栬漿鎹㈠瓧絎︿箣鍚庣殑瀛楃錛夛紝鍗蟲渚嬩腑鐨?234鐢ㄦ潵璺寵繃杈撳叆涓殑鐩稿簲瀛楃錛?
‘[]’鐨勫惈涔変笌姝e垯琛ㄨ揪寮忎腑鐩稿悓錛岃〃紺哄尮閰嶅叾涓嚭鐜扮殑瀛楃搴忓垪錛沕琛ㄧず鐩稿弽銆備嬌鐢╗ ]鏃舵帴鏀惰緭鍏ョ殑鍙橀噺蹇呴』鏄湁瓚沖瀛樺偍絀洪棿鐨刢har銆乻igned char銆乽nsigned char鏁扮粍銆傝浣廩涔熸槸杞崲瀛楃錛屾墍浠ユ病鏈塻浜嗐?/div>
8銆佸垎鍓蹭互鏌愬瓧絎︽爣璁扮殑瀛楃涓層?/div>
 char test[]="222,333,444,,,555,666";
 char s1[4],s2[4],s3[4],s4[4],s5[4],s6[4],s7[4];
 sscanf(test,"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,]",s1,s2,s3,s4,s5,s6,s7);
 printf("sssa1=%s",s1);
 printf("sssa2=%s",s2);
 printf("sssa3=%s",s3);
 printf("sssa4=%s",s4);
 printf("sssa5=%s",s5);
 printf("sssa6=%s",s6);
 printf("sssa7=%s",s7);
9銆佷竴涓彁鍙栫敤鎴蜂釜浜鴻祫鏂欎腑閭歡鍦板潃鐨勪緥瀛?
#include<cstdlib>
#include<cstdio>
using namespace std;
int main()
{
    char a[20]={0};
    char b[20]={0};
    //鍋囪email鍦板潃淇℃伅浠?;'緇撴潫
    sscanf("email:jimmywhr@gmail.com;","%*[^:]:%[^;]",a);
    //鍋囪email鍦板潃淇℃伅娌℃湁鐗瑰畾鐨勭粨鏉熸爣蹇?
    sscanf("email:jimmywhr@gmail.com","%*[^:]:%s",b);
    printf("%s\n",a);
    printf("%s\n",b);
    system("pause");
    return 0;
}
  鍏抽敭鏄?%*[^:]:%[^;]"鍜?%*[^:]:%s"榪欎袱涓弬鏁扮殑闂
  %*[^:]    琛ㄧず婊¤凍"[]"閲岀殑鏉′歡灝嗚榪囨護鎺夛紝涓嶄細鍚戠洰鏍囧弬鏁頒腑鍐欏叆鍊箋傝繖閲岀殑鎰忔濇槸鍦?br>            絎竴涓?:'涔嬪墠鐨勫瓧絎︿細鍦ㄥ啓鍏ユ椂榪囨護鎺?'^'鏄〃紺哄惁瀹氱殑鎰忔濓紝鏁翠釜鍙傛暟緲昏瘧
            鎴愮櫧璇濆氨鏄細灝嗗湪閬囧埌絎竴涓?:'涔嬪墠鐨勶紙涓嶄負':'鐨勶級瀛楃鍏ㄩ儴榪囨護鎺夈?
  :         鑷劧灝辨槸璺寵繃':'鐨勬剰鎬濄?br>  %[^;]     鎷瘋礉瀛楃鐩村埌閬囧埌';'銆?/div>
涓涓嬫憳鑷細http://blog.csdn.net/lbird/archive/2007/08/03/1724429.aspx
%[ ] 鐨勭敤娉曪細%[ ]琛ㄧず瑕佽鍏ヤ竴涓瓧絎﹂泦鍚? 濡傛灉[ 鍚庨潰絎竴涓瓧絎︽槸”^”錛屽垯琛ㄧず鍙嶆剰鎬濄?/div>
                     [ ]鍐呯殑瀛楃涓插彲浠ユ槸1鎴栨洿澶氬瓧絎︾粍鎴愩傜┖瀛楃闆嗭紙%[]錛夋槸榪濆弽瑙勫畾鐨勶紝鍙?/div>
                     瀵艱嚧涓嶅彲棰勭煡鐨勭粨鏋溿?[^]涔熸槸榪濆弽瑙勫畾鐨勩?br>         
%[a-z] 璇誨彇鍦?a-z 涔嬮棿鐨勫瓧絎︿覆錛屽鏋滀笉鍦ㄦ涔嬪墠鍒欏仠姝紝濡?/div>
              char s[]="hello, my friend” ;         // 娉ㄦ剰: ,閫楀彿鍦ㄤ笉 a-z涔嬮棿
              sscanf( s, “%[a-z]”, string ) ; // string=hello

%[^a-z] 璇誨彇涓嶅湪 a-z 涔嬮棿鐨勫瓧絎︿覆錛屽鏋滅鍒癮-z涔嬮棿鐨勫瓧絎﹀垯鍋滄錛屽
              char s[]="HELLOkitty” ;         // 娉ㄦ剰: ,閫楀彿鍦ㄤ笉 a-z涔嬮棿
              sscanf( s, “%[^a-z]”, string ) ; // string=HELLO

%*[^=]    鍓嶉潰甯?* 鍙瘋〃紺轟笉淇濆瓨鍙橀噺銆傝煩榪囩鍚堟潯浠剁殑瀛楃涓層?/div>
              char s[]="notepad=1.0.0.1001" ;
       char szfilename [32] = "" ;
       int i = sscanf( s, "%*[^=]", szfilename ) ; // szfilename=NULL,鍥犱負娌′繚瀛?/div>
 int i = sscanf( s, "%*[^=]=%s", szfilename ) ; // szfilename=1.0.0.1001
%40c      璇誨彇40涓瓧絎?/div>
       The run-time
 library does not automatically append a null terminator
 to the string, nor does reading 40 characters
 automatically terminate the scanf() function. Because the
 library uses buffered input, you must press the ENTER key
 to terminate the string scan. If you press the ENTER before
 the scanf() reads 40 characters, it is displayed normally,
 and the library continues to prompt for additional input
 until it reads 40 characters

%[^=]     璇誨彇瀛楃涓茬洿鍒扮鍒?#8217;=’鍙鳳紝’^’鍚庨潰鍙互甯︽洿澶氬瓧絎?濡傦細
              char s[]="notepad=1.0.0.1001" ;
       char szfilename [32] = "" ;
       int i = sscanf( s, "%[^=]", szfilename ) ; // szfilename=notepad     
       濡傛灉鍙傛暟鏍煎紡鏄細%[^=:] 錛岄偅涔堜篃鍙互浠?notepad:1.0.0.1001璇誨彇notepad
             
浣跨敤渚嬪瓙錛?/div>
 char s[]="notepad=1.0.0.1001" ;
 char szname [32] = "" ;
 char szver [32] = “” ;
sscanf( s, "%[^=]=%s", szname , szver ) ; // szname=notepad, szver=1.0.0.1001
鎬葷粨錛?[]鏈夊緢澶х殑鍔熻兘錛屼絾鏄茍涓嶆槸寰堝父鐢ㄥ埌錛屼富瑕佸洜涓猴細
1銆佽澶氱郴緇熺殑 scanf 鍑芥暟閮芥湁婕忔礊. (鍏稿瀷鐨勫氨鏄?TC 鍦ㄨ緭鍏ユ誕鐐瑰瀷鏃舵湁鏃朵細鍑洪敊).
2銆佺敤娉曞鏉? 瀹規槗鍑洪敊.
3銆佺紪璇戝櫒浣滆娉曞垎鏋愭椂浼氬緢鍥伴毦, 浠庤屽獎鍝嶇洰鏍囦唬鐮佺殑璐ㄩ噺鍜屾墽琛屾晥鐜?
涓漢瑙夊緱絎?鐐規渶鑷村懡錛岃秺澶嶆潅鐨勫姛鑳藉線寰鎵ц鏁堢巼瓚婁綆涓嬨傝屼竴浜涚畝鍗曠殑瀛楃涓插垎鏋愭垜浠彲浠ヨ嚜宸插鐞嗐?/div>

浠ュ墠鍙槸綆鍗曟槸浣跨敤sscanf,鍗存病鍙戠幇鍏惰繕鏈夊姝ゅ己澶х殑鍔熻兘
 char str0[100],str1[100],str2[100],str3[100];

 sscanf("abcde abc 123 aaa","%s %s %s %s",str0,str1,str2,str3);
 緇撴灉:str0="abcde"   str1="abc"  str2 = "123" str3="aaa"

 sscanf("abcde abc 123 aaa","abc%s %s %*d %s",str0,str1,str3);
 緇撴灉:str0="abcde"   str1="abc"  str3="aaa"

 sscanf("abc123 efg456","%4s",str0);
 緇撴灉:str0="abc1"   

 sscanf("abc123 efg456a4","%[a-z 1-5]",str0);
 緇撴灉:str0="abc123 efg45"   

sscanf("abc123 efg456a4","%[a-z1-5]",str0);
 緇撴灉:str0="abc123" 

 sscanf("ABCTabcZ123 efg456","%[A-P]",str0);
 緇撴灉:str0="ABC"   

 sscanf("abc 12345","%[^ ]",str0);
 緇撴灉:str0="abc"   

 sscanf("abc 12345","%[^4]",str0);
 緇撴灉:str0="abc 123"   

 sscanf("fdaBs 52aB1asdf","%[^4-0]",str0);
 緇撴灉:str0="fdaBs 5"   

 sscanf("abc 12345","%[^ ]%[^3]",str0,str1);
 緇撴灉:str0="abc"    str1="12"

 sscanf("abc301abc2345","%*[^9-0]%s",str0); 
 緇撴灉:str0="301abc2345"   
 sscanf("bca@123efg4@5abc","%*[^@]@%[^@]",str0);
 緇撴灉:str0="123efg4"   



蹇冪窘 2010-04-25 10:47 鍙戣〃璇勮
]]>C++ 榪愮畻絎︿紭鍏堢駭鍒楄〃 http://m.shnenglu.com/tdweng/articles/113486.html蹇冪窘蹇冪窘Sat, 24 Apr 2010 18:13:00 GMThttp://m.shnenglu.com/tdweng/articles/113486.htmlhttp://m.shnenglu.com/tdweng/comments/113486.htmlhttp://m.shnenglu.com/tdweng/articles/113486.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/113486.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/113486.htmlC++ 榪愮畻絎︿紭鍏堢駭鍒楄〃 http://www.cppreference.com/operator_precedence.html
Precedence Operator Description Example Associativity
1 ()
[]
->
.
::
++
--
Grouping operator
Array access
Member access from a pointer
Member access from an object
Scoping operator
Post-increment
Post-decrement
(a + b) / 4;
array[4] = 2;
ptr->age = 34;
obj.age = 34;
Class::age = 2;
for( i = 0; i < 10; i++ ) ...
for( i = 10; i > 0; i-- ) ...
left to right
2 !
~
++
--
-
+
*
&
(type)
sizeof
Logical negation
Bitwise complement
Pre-increment
Pre-decrement
Unary minus
Unary plus
Dereference
Address of
Cast to a given type
Return size in bytes
if( !done ) ...
flags = ~flags;
for( i = 0; i < 10; ++i ) ...
for( i = 10; i > 0; --i ) ...
int i = -1;
int i = +1;
data = *ptr;
address = &obj;
int i = (int) floatNum;
int size = sizeof(floatNum);
right to left
3 ->*
.*
Member pointer selector
Member pointer selector
ptr->*var = 24;
obj.*var = 24;
left to right
4 *
/
%
Multiplication
Division
Modulus
int i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3;
left to right
5 +
-
Addition
Subtraction
int i = 2 + 3;
int i = 5 - 1;
left to right
6 <<
>>
Bitwise shift left
Bitwise shift right
int flags = 33 << 1;
int flags = 33 >> 1;
left to right
7 <
<=
>
>=
Comparison less-than
Comparison less-than-or-equal-to
Comparison greater-than
Comparison geater-than-or-equal-to
if( i < 42 ) ...
if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ...
left to right
8 ==
!=
Comparison equal-to
Comparison not-equal-to
if( i == 42 ) ...
if( i != 42 ) ...
left to right
9 & Bitwise AND flags = flags & 42; left to right
10 ^ Bitwise exclusive OR flags = flags ^ 42; left to right
11 | Bitwise inclusive (normal) OR flags = flags | 42; left to right
12 && Logical AND if( conditionA && conditionB ) ... left to right
13 || Logical OR if( conditionA || conditionB ) ... left to right
14 ? : Ternary conditional (if-then-else) int i = (a > b) ? a : b; right to left
15 =
+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=
Assignment operator
Increment and assign
Decrement and assign
Multiply and assign
Divide and assign
Modulo and assign
Bitwise AND and assign
Bitwise exclusive OR and assign
Bitwise inclusive (normal) OR and assign
Bitwise shift left and assign
Bitwise shift right and assign
int a = b;
a += 3;
b -= 4;
a *= 5;
a /= 2;
a %= 3;
flags &= new_flags;
flags ^= new_flags;
flags |= new_flags;
flags <<= 2;
flags >>= 2;
right to left
16 , Sequential evaluation operator for( i = 0, j = 0; i < 10; i++, j++ ) ... left to right


蹇冪窘 2010-04-25 02:13 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美日韩国产成人在线91| 久久久精品动漫| 亚洲午夜一级| 卡通动漫国产精品| 国产精自产拍久久久久久| 亚洲黄色一区| 久久美女性网| 一区二区久久久久久| 嫩草国产精品入口| 国产欧美日韩亚洲精品| 午夜精品影院| 亚洲欧洲视频| 午夜在线电影亚洲一区| 欧美激情aaaa| 激情综合自拍| 久久国产精品一区二区| 一区二区三区高清| 亚洲第一区色| 久久久久国产精品午夜一区| 国产精品久久网| 在线亚洲欧美专区二区| 久久综合伊人77777麻豆| 亚洲自拍高清| 国产精品视频xxxx| 亚洲一区尤物| 久久久久久伊人| 亚洲一区二区四区| 欧美性猛交xxxx免费看久久久| 国产精品亚洲欧美| 亚洲一区二区免费看| 日韩视频一区二区三区| 欧美激情视频免费观看| 亚洲激情在线播放| 亚洲第一黄色| 欧美日韩亚洲一区在线观看| 99视频有精品| 99国产精品久久久久老师| 欧美黄网免费在线观看| 亚洲美女精品久久| 亚洲毛片在线免费观看| 欧美日韩成人综合| 亚洲午夜一级| 亚洲国产精品va在线看黑人动漫 | 亚洲精品日韩久久| 亚洲人www| 国产精品久久久久久久久免费樱桃| 亚洲一级免费视频| 亚洲一区二区三区欧美| 国产精品一区二区你懂得| 久久精品色图| 狼人社综合社区| 日韩小视频在线观看专区| 日韩一级在线观看| 国产精品久久福利| 久久久精品动漫| 老司机凹凸av亚洲导航| 亚洲伦理精品| 中文国产亚洲喷潮| 国产久一道中文一区| 久久综合色一综合色88| 欧美好骚综合网| 亚洲一区二区3| 欧美专区在线播放| 亚洲精品久久久久中文字幕欢迎你 | 樱桃国产成人精品视频| 亚洲高清成人| 国产精品观看| 另类酷文…触手系列精品集v1小说| 美女视频黄免费的久久| 亚洲一级黄色片| 久久精品青青大伊人av| 日韩午夜电影av| 欧美一区二区三区四区夜夜大片 | 久久精品五月婷婷| 美日韩精品视频免费看| 午夜精品久久久久久久久久久久| 久久嫩草精品久久久精品| 亚洲网站在线观看| 久久国产精品99精品国产| 亚洲免费av电影| 欧美在线3区| 亚洲欧美中文在线视频| 久久婷婷蜜乳一本欲蜜臀| 亚洲欧美日韩中文播放| 久久精品一区中文字幕| 亚洲一区二区高清视频| 老司机成人网| 欧美在线一区二区| 欧美日韩一区二区欧美激情 | 欧美调教vk| 欧美国产视频在线| 国产亚洲欧洲| 亚洲欧美韩国| 亚洲午夜激情网站| 欧美欧美天天天天操| 免费看成人av| 一色屋精品视频在线观看网站| 亚洲午夜国产一区99re久久| 99re66热这里只有精品3直播| 久久九九全国免费精品观看| 香蕉国产精品偷在线观看不卡| 欧美乱大交xxxxx| 亚洲激情电影在线| 最新成人在线| 久久久精品国产免大香伊| 亚洲精品免费网站| 欧美国产三区| 亚洲国产精品精华液2区45| 亚洲国产一二三| 久久国产视频网| 蜜月aⅴ免费一区二区三区| 国产一区二区| 欧美一区二区三区免费观看视频| 国产精品美女久久久久av超清 | 欧美精品入口| 亚洲国产精品一区二区尤物区| 亚洲精品1区2区| 欧美成人一区二区三区| 午夜精品久久一牛影视| 欧美成人午夜| 老司机精品视频网站| 久久动漫亚洲| 欧美成人免费网站| 国产揄拍国内精品对白| 一本久久综合亚洲鲁鲁| 亚洲一区二区三区高清不卡| 国产精品wwwwww| 亚洲欧美日韩精品久久久久 | 亚洲激情一区| 亚洲一区二区三区视频播放| 欧美日韩在线直播| 99国产精品久久久久久久久久| 亚洲一区二区三区四区中文| 欧美亚州在线观看| 欧美一级电影久久| 女人天堂亚洲aⅴ在线观看| 欧美日韩国产成人在线91| 亚洲黄色免费网站| 亚洲国产一二三| 欧美国产综合视频| 亚洲视频日本| 麻豆精品网站| 一区二区三区成人| 国产农村妇女毛片精品久久莱园子| 小嫩嫩精品导航| 欧美激情亚洲自拍| 亚洲素人在线| 黄色成人在线网址| 欧美岛国激情| 亚洲在线观看免费视频| 欧美一区二区黄色| 1024精品一区二区三区| 欧美区高清在线| 午夜免费久久久久| 欧美成人精品在线播放| 亚洲一区久久久| 精品白丝av| 欧美午夜无遮挡| 久久性色av| 亚洲一区二区三区在线视频| 亚洲电影在线播放| 久久激情网站| 中文欧美日韩| 国产九区一区在线| 老司机亚洲精品| 亚洲中字在线| 亚洲国产视频直播| 久久久亚洲高清| 亚洲欧美激情一区| 亚洲毛片在线免费观看| 国内成+人亚洲+欧美+综合在线| 欧美精品videossex性护士| 久久国产精品电影| 亚洲一区在线免费观看| 亚洲韩日在线| 久久综合狠狠综合久久综合88 | 国产精品久久久久久av下载红粉 | 国产精品草草| 欧美成人在线免费观看| 久久激情视频久久| 亚洲免费小视频| 一区二区三区日韩| 91久久极品少妇xxxxⅹ软件| 久久噜噜亚洲综合| 久久国产精品久久久久久久久久| 中日韩视频在线观看| 亚洲人www| 国产日韩精品一区二区三区| 久久亚洲精品网站| 99在线热播精品免费| 91久久在线| 亚洲韩国青草视频| 91久久亚洲| 亚洲国产精品尤物yw在线观看| 亚洲成人在线免费| 欧美成人精品在线| 欧美在线视频a| 亚洲欧美日韩中文播放| 亚洲永久免费av| 亚洲一级免费视频|