锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲在线观看视频网站,国产午夜一区二区三区,欧美日韩在线大尺度http://www.shnenglu.com/franksunny/archive/2007/03/30/20974.htmlfrank.sunnyfrank.sunnyFri, 30 Mar 2007 13:16:00 GMThttp://www.shnenglu.com/franksunny/archive/2007/03/30/20974.htmlhttp://www.shnenglu.com/franksunny/comments/20974.htmlhttp://www.shnenglu.com/franksunny/archive/2007/03/30/20974.html#Feedback0http://www.shnenglu.com/franksunny/comments/commentRss/20974.htmlhttp://www.shnenglu.com/franksunny/services/trackbacks/20974.html

鍏充簬鍐呭瓨鏄犲皠鏂囦歡澶勭悊

浠婂ぉ鐪嬪埌涓綃囨枃绔犺鍐呭瓨鏄犲皠鏂囦歡鐨勫鐞嗭紝铏界劧鑷繁娌℃湁澶勭悊榪囧姝ゅぇ鐨勬枃浠剁郴緇燂紝浣嗘槸濂藉灝變篃鐪嬩簡(jiǎn)涓嬶紝璋佺煡閬撹嚜宸變互鍚庝細(xì)涓嶄細(xì)鐢ㄥ埌鎴栬冨埌榪欐柟闈㈢殑鐭ヨ瘑銆傛墍浠ュ氨緇欒嚜宸?/span> mark 涓涓嬶紝澧炲姞鐐硅嚜宸辯殑鍗拌薄銆?/span>

棣栧厛錛岄氳繃 CreateFile() 鍑芥暟鏉ュ垱寤烘垨鎵撳紑涓涓枃浠跺唴鏍稿璞★紝榪欎釜瀵硅薄鏍囪瘑浜?jiǎn)纾佺洏涓姙畣瑕佺敤浣滃唴瀛樻槧灏勬枃錃g鐨勬枃浠躲傦紙鍏跺疄鏄幏鍙栨枃浠跺彞鏌勶級(jí)

鍏舵錛岄氳繃 CreateFileMapping() 鍑芥暟鏉ヤ負(fù)鍒氭墠鍒涘緩鐨勬枃浠跺唴鏍稿璞″垱寤轟竴涓枃浠舵槧灝勫唴鏍稿璞″茍鍛婅瘔緋葷粺鏂囦歡鐨勫昂瀵鎬互鍙?qiáng)璁块棶鏂囦欢鐨勬柟寮忋傦紙鑾峰彇鏂囦歡鏄犲皠鍐呮牳瀵硅薄鐨勫彞鏌勶級(jí)

鍐嶆錛岄氳繃 MapViewOfFile() 鍑芥暟灝嗘枃浠跺唴鏍告槧灝勫璞℃坊鍔犲埌榪涚▼涓傦紙鑾峰彇鏄犲皠鍐呮牳瀵硅薄鐨勬寚閽堬級(jí)

鎺ョ潃錛岀▼搴忓氨鍙互閫氳繃鎸囬拡榪涜甯歌鐨勬枃浠惰鍙栦簡(jiǎn)錛岃繖閲岀殑鎿嶄綔灝卞拰鏂囦歡鎿嶄綔涓鏍鳳紝涓嶅仛灞曞紑銆?/span>

鐢ㄥ畬涔嬪悗錛岃繕寰楀洖鏀訛紝鍏堢敤 UnmapViewOfFile() 灝嗛噴鏀炬槧灝勫唴鏍稿璞℃寚閽堬紝鐒跺悗閫氳繃 CloseHandle 鍏抽棴涔嬪墠鍒涘緩鐨勬枃浠舵槧灝勫唴鏍稿璞″彞鏌勫拰鏂囦歡鍐呮牳瀵硅薄鍙ユ焺銆?/span>

浠ヤ笅鏄垜鎵懼埌鐨勬枃绔犵殑鍑哄錛?/span> http://newcactus.bokee.com/viewdiary.15316244.html

涓嬮潰綰補(bǔ)鏄矘璐村埆浜虹殑浣滃搧錛?/span>

VC++ 涓嬌鐢ㄥ唴瀛樻槧灝勬枃浠跺鐞嗗ぇ鏂囦歡

鎽樿錛?/span> 鏈枃緇欏嚭浜?jiǎn)涓縐嶆柟渚垮疄鐢ㄧ殑瑙e喅澶ф枃浠剁殑璇誨彇銆佸瓨鍌ㄧ瓑澶勭悊鐨勬柟娉曪紝騫剁粨鍚堢浉鍏崇▼搴忎唬鐮佸鍏蜂綋鐨勫疄鐜拌繃紼嬭繘琛屼簡(jiǎn)浠嬬粛銆?span lang="EN-US">

銆銆寮曡█

銆銆鏂囦歡鎿嶄綔鏄簲鐢ㄧ▼搴忔渶涓哄熀鏈殑鍔熻兘涔嬩竴錛?span lang="EN-US">Win32 API鍜?span lang="EN-US">MFC鍧囨彁渚涙湁鏀寔鏂囦歡澶勭悊鐨勫嚱鏁板拰綾伙紝甯哥敤鐨勬湁Win32 API鐨?span lang="EN-US">CreateFile()銆?span lang="EN-US">WriteFile()銆?span lang="EN-US">ReadFile()鍜?span lang="EN-US">MFC鎻愪緵鐨?span lang="EN-US">CFile綾葷瓑銆備竴鑸潵璇達(dá)紝浠ヤ笂榪欎簺鍑芥暟鍙互婊¤凍澶у鏁板満鍚堢殑瑕佹眰錛屼絾鏄浜庢煇浜涚壒孌婂簲鐢ㄩ鍩熸墍闇瑕佺殑鍔ㄨ緞鍑犲崄GB銆佸嚑鐧?span lang="EN-US">GB銆佷箖鑷沖嚑TB鐨勬搗閲忓瓨鍌紝鍐嶄互閫氬父鐨勬枃浠跺鐞嗘柟娉曡繘琛屽鐞嗘樉鐒舵槸琛屼笉閫氱殑銆傜洰鍓嶏紝瀵逛簬涓婅堪榪欑澶ф枃浠剁殑鎿嶄綔涓鑸槸浠ュ唴瀛樻槧灝勬枃浠剁殑鏂瑰紡鏉ュ姞浠ュ鐞嗙殑錛屾湰鏂囦笅闈㈠皢閽堝榪欑Windows鏍稿績(jī)緙栫▼鎶鏈睍寮璁ㄨ銆?span lang="EN-US">

銆銆鍐呭瓨鏄犲皠鏂囦歡

銆銆鍐呭瓨鏄犲皠鏂囦歡涓庤櫄鎷熷唴瀛樻湁浜涚被浼鹼紝閫氳繃鍐呭瓨鏄犲皠鏂囦歡鍙互淇濈暀涓涓湴鍧絀洪棿鐨勫尯鍩燂紝鍚屾椂灝嗙墿鐞嗗瓨鍌ㄥ櫒鎻愪氦緇欐鍖哄煙錛屽彧鏄唴瀛樻枃浠舵槧灝勭殑鐗╃悊瀛樺偍鍣ㄦ潵鑷竴涓凡緇忓瓨鍦ㄤ簬紓佺洏涓婄殑鏂囦歡錛岃岄潪緋葷粺鐨勯〉鏂囦歡錛岃屼笖鍦ㄥ璇ユ枃浠惰繘琛屾搷浣滀箣鍓嶅繀欏婚鍏堝鏂囦歡榪涜鏄犲皠錛屽氨濡傚悓灝嗘暣涓枃浠朵粠紓佺洏鍔犺澆鍒板唴瀛樸傜敱姝ゅ彲浠ョ湅鍑猴紝浣跨敤鍐呭瓨鏄犲皠鏂囦歡澶勭悊瀛樺偍浜庣鐩樹笂鐨勬枃浠舵椂錛屽皢涓嶅繀鍐嶅鏂囦歡鎵цI/O鎿嶄綔錛岃繖鎰忓懗鐫鍦ㄥ鏂囦歡榪涜澶勭悊鏃跺皢涓嶅繀鍐嶄負(fù)鏂囦歡鐢寵騫跺垎閰嶇紦瀛橈紝鎵鏈夌殑鏂囦歡緙撳瓨鎿嶄綔鍧囩敱緋葷粺鐩存帴綆$悊錛岀敱浜庡彇娑堜簡(jiǎn)灝嗘枃浠舵暟鎹姞杞藉埌鍐呭瓨銆佹暟鎹粠鍐呭瓨鍒版枃浠剁殑鍥炲啓浠ュ強(qiáng)閲婃斁鍐呭瓨鍧楃瓑姝ラ錛屼嬌寰楀唴瀛樻槧灝勬枃浠跺湪澶勭悊澶ф暟鎹噺鐨勬枃浠舵椂鑳借搗鍒扮浉褰撻噸瑕佺殑浣滅敤銆傚彟澶栵紝瀹為檯宸ョ▼涓殑緋葷粺寰寰闇瑕佸湪澶氫釜榪涚▼涔嬮棿鍏變韓鏁版嵁錛屽鏋滄暟鎹噺灝忥紝澶勭悊鏂規(guī)硶鏄伒媧誨鍙樼殑錛屽鏋滃叡浜暟鎹閲忓法澶э紝閭d箞灝遍渶瑕佸熷姪浜庡唴瀛樻槧灝勬枃浠舵潵榪涜銆傚疄闄呬笂錛屽唴瀛樻槧灝勬枃浠舵鏄В鍐蟲湰鍦板涓繘紼嬮棿鏁版嵁鍏變韓鐨勬渶鏈夋晥鏂規(guī)硶銆?span lang="EN-US">

銆銆鍐呭瓨鏄犲皠鏂囦歡騫朵笉鏄畝鍗曠殑鏂囦歡I/O鎿嶄綔錛屽疄闄呯敤鍒頒簡(jiǎn)Windows鐨勬牳蹇?jī)缂柦E嬫妧鏈?span lang="EN-US">--鍐呭瓨綆$悊銆傛墍浠ワ紝濡傛灉鎯沖鍐呭瓨鏄犲皠鏂囦歡鏈夋洿娣卞埢鐨勮璇嗭紝蹇呴』瀵?span lang="EN-US">Windows鎿嶄綔緋葷粺鐨勫唴瀛樼鐞嗘満鍒舵湁娓呮鐨勮璇嗭紝鍐呭瓨綆$悊鐨勭浉鍏崇煡璇嗛潪甯稿鏉傦紝瓚呭嚭浜?jiǎn)鏈枃鐨勮璁鸿寖鐣村Q屽湪姝ゅ氨涓嶅啀璧樿堪錛屾劅鍏磋叮鐨勮鑰呭彲浠ュ弬闃呭叾浠栫浉鍏充功綾嶃備笅闈㈢粰鍑轟嬌鐢ㄥ唴瀛樻槧灝勬枃浠剁殑涓鑸柟娉曪細(xì)

銆銆棣栧厛瑕侀氳繃CreateFile()鍑芥暟鏉ュ垱寤烘垨鎵撳紑涓涓枃浠跺唴鏍稿璞★紝榪欎釜瀵硅薄鏍囪瘑浜?jiǎn)纾佺洏涓姙畣瑕佺敤浣滃唴瀛樻槧灏勬枃錃g鐨勬枃浠躲傚湪鐢?span lang="EN-US">CreateFile()灝嗘枃浠舵槧鍍忓湪鐗╃悊瀛樺偍鍣ㄧ殑浣嶇疆閫氬憡緇欐搷浣滅郴緇熷悗錛屽彧鎸囧畾浜?jiǎn)鏄犲儚鏂囦欢鐨勮矾寰勫Q屾槧鍍忕殑闀垮害榪樻病鏈夋寚瀹氥備負(fù)浜?jiǎn)鎸囧畾鏂囦欢鏄牉畡瀵硅薄闇瑕佸澶х殑鐗╃悊瀛樺偍絀洪棿榪橀渶瑕侀氳繃CreateFileMapping()鍑芥暟鏉ュ垱寤轟竴涓枃浠舵槧灝勫唴鏍稿璞′互鍛婅瘔緋葷粺鏂囦歡鐨勫昂瀵鎬互鍙?qiáng)璁块棶鏂囦欢鐨勬柟寮忋傚湪鍒涘緩浜?jiǎn)鏂囦欢鏄牉畡瀵硅薄鍚庡Q岃繕蹇呴』涓烘枃浠舵暟鎹繚鐣欎竴涓湴鍧絀洪棿鍖哄煙錛屽茍鎶婃枃浠舵暟鎹綔涓烘槧灝勫埌璇ュ尯鍩熺殑鐗╃悊瀛樺偍鍣ㄨ繘琛屾彁浜ゃ傜敱MapViewOfFile()鍑芥暟璐熻矗閫氳繃緋葷粺鐨勭鐞嗚屽皢鏂囦歡鏄犲皠瀵硅薄鐨勫叏閮ㄦ垨閮ㄥ垎鏄犲皠鍒拌繘紼嬪湴鍧絀洪棿銆傛鏃訛紝瀵瑰唴瀛樻槧灝勬枃浠剁殑浣跨敤鍜屽鐞嗗悓閫氬父鍔犺澆鍒板唴瀛樹腑鐨勬枃浠舵暟鎹殑澶勭悊鏂瑰紡鍩烘湰涓鏍鳳紝鍦ㄥ畬鎴愪簡(jiǎn)瀵瑰唴瀛樻槧灝勬枃浠剁殑浣跨敤鏃訛紝榪樿閫氳繃涓緋誨垪鐨勬搷浣滃畬鎴愬鍏剁殑娓呴櫎鍜屼嬌鐢ㄨ繃璧勬簮鐨勯噴鏀俱傝繖閮ㄥ垎鐩稿姣旇緝綆鍗曪紝鍙互閫氳繃UnmapViewOfFile()瀹屾垚浠庤繘紼嬬殑鍦板潃絀洪棿鎾ゆ秷鏂囦歡鏁版嵁鐨勬槧鍍忋侀氳繃CloseHandle()鍏抽棴鍓嶉潰鍒涘緩鐨勬枃浠舵槧灝勫璞″拰鏂囦歡瀵硅薄銆?span lang="EN-US">

銆銆鍐呭瓨鏄犲皠鏂囦歡鐩稿叧鍑芥暟

銆銆鍦ㄤ嬌鐢ㄥ唴瀛樻槧灝勬枃浠舵椂錛屾墍浣跨敤鐨?span lang="EN-US">API鍑芥暟涓昏灝辨槸鍓嶉潰鎻愬埌榪囩殑閭e嚑涓嚱鏁幫紝涓嬮潰鍒嗗埆瀵瑰叾榪涜浠嬬粛錛?span lang="EN-US">

HANDLE CreateFile(LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile);


銆銆鍑芥暟CreateFile()鍗充嬌鏄湪鏅氱殑鏂囦歡鎿嶄綔鏃朵篃緇忓父鐢ㄦ潵鍒涘緩銆佹墦寮鏂囦歡錛屽湪澶勭悊鍐呭瓨鏄犲皠鏂囦歡鏃訛紝璇ュ嚱鏁版潵鍒涘緩/鎵撳紑涓涓枃浠跺唴鏍稿璞★紝騫跺皢鍏跺彞鏌勮繑鍥烇紝鍦ㄨ皟鐢ㄨ鍑芥暟鏃墮渶瑕佹牴鎹槸鍚﹂渶瑕佹暟鎹鍐欏拰鏂囦歡鐨勫叡浜柟寮忔潵璁劇疆鍙傛暟dwDesiredAccess鍜?span lang="EN-US">dwShareMode錛岄敊璇殑鍙傛暟璁劇疆灝嗕細(xì)瀵艱嚧鐩稿簲鎿嶄綔鏃剁殑澶辮觸銆?span lang="EN-US">

HANDLE CreateFileMapping(HANDLE hFile,
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
DWORD flProtect,
DWORD dwMaximumSizeHigh,
DWORD dwMaximumSizeLow,
LPCTSTR lpName);


銆銆CreateFileMapping()鍑芥暟鍒涘緩涓涓枃浠舵槧灝勫唴鏍稿璞★紝閫氳繃鍙傛暟hFile鎸囧畾寰呮槧灝勫埌榪涚▼鍦板潃絀洪棿鐨勬枃浠跺彞鏌勶紙璇ュ彞鏌勭敱CreateFile()鍑芥暟鐨勮繑鍥炲艱幏鍙栵級(jí)銆傜敱浜庡唴瀛樻槧灝勬枃浠剁殑鐗╃悊瀛樺偍鍣ㄥ疄闄呮槸瀛樺偍浜庣鐩樹笂鐨勪竴涓枃浠訛紝鑰屼笉鏄粠緋葷粺鐨勯〉鏂囦歡涓垎閰嶇殑鍐呭瓨錛屾墍浠ョ郴緇熶笉浼?xì)涓诲姩湄?fù)鍏朵繚鐣欏湴鍧絀洪棿鍖哄煙錛屼篃涓嶄細(xì)鑷姩灝嗘枃浠剁殑瀛樺偍絀洪棿鏄犲皠鍒拌鍖哄煙錛屼負(fù)浜?jiǎn)璁┚p葷粺鑳藉紜畾瀵歸〉闈㈤噰鍙栦綍縐嶄繚鎶ゅ睘鎬э紝闇瑕侀氳繃鍙傛暟flProtect鏉ヨ瀹氾紝淇濇姢灞炴?span lang="EN-US">PAGE_READONLY銆?span lang="EN-US">PAGE_READWRITE鍜?span lang="EN-US">PAGE_WRITECOPY鍒嗗埆琛ㄧず鏂囦歡鏄犲皠瀵硅薄琚槧灝勫悗錛屽彲浠ヨ鍙栥佽鍐欐枃浠舵暟鎹傚湪浣跨敤PAGE_READONLY鏃訛紝蹇呴』紜繚CreateFile()閲囩敤鐨勬槸GENERIC_READ鍙傛暟錛?span lang="EN-US">PAGE_READWRITE鍒欒姹?span lang="EN-US">CreateFile()閲囩敤鐨勬槸GENERIC_READ|GENERIC_WRITE鍙傛暟錛涜嚦浜庡睘鎬?span lang="EN-US">PAGE_WRITECOPY鍒欏彧闇瑕佺‘淇?span lang="EN-US">CreateFile()閲囩敤浜?span lang="EN-US">GENERIC_READ鍜?span lang="EN-US">GENERIC_WRITE鍏朵腑涔嬩竴鍗沖彲銆?span lang="EN-US">DWORD鍨嬬殑鍙傛暟dwMaximumSizeHigh鍜?span lang="EN-US">dwMaximumSizeLow涔熸槸鐩稿綋閲嶈鐨勶紝鎸囧畾浜?jiǎn)鏂囦欢鐨勬渶澶у瓧鑺傛暟錛岀敱浜庤繖涓や釜鍙傛暟鍏?span lang="EN-US">64浣嶏紝鍥犳鎵鏀寔鐨勬渶澶ф枃浠墮暱搴︿負(fù)16EB錛屽嚑涔庡彲浠ユ弧瓚充換浣曞ぇ鏁版嵁閲忔枃浠跺鐞嗗満鍚堢殑瑕佹眰銆?span lang="EN-US">

LPVOID MapViewOfFile(HANDLE hFileMappingObject,
DWORD dwDesiredAccess,
DWORD dwFileOffsetHigh,
DWORD dwFileOffsetLow,
DWORD dwNumberOfBytesToMap);


銆銆MapViewOfFile()鍑芥暟璐熻矗鎶婃枃浠舵暟鎹槧灝勫埌榪涚▼鐨勫湴鍧絀洪棿錛屽弬鏁?span lang="EN-US">hFileMappingObject涓?span lang="EN-US">CreateFileMapping()榪斿洖鐨勬枃浠舵槧鍍忓璞″彞鏌勩傚弬鏁?span lang="EN-US">dwDesiredAccess鍒欏啀嬈℃寚瀹氫簡(jiǎn)瀵規(guī)枃浠舵暟鎹殑璁塊棶鏂瑰紡錛岃屼笖鍚屾牱瑕佷笌CreateFileMapping()鍑芥暟鎵璁劇疆鐨勪繚鎶ゅ睘鎬х浉鍖歸厤銆傝櫧鐒惰繖閲屼竴鍐嶅淇濇姢灞炴ц繘琛岄噸澶嶈緗湅浼煎浣欙紝浣嗗嵈鍙互浣垮簲鐢ㄧ▼搴忚兘鏇村鐨勫鏁版嵁鐨勪繚鎶ゅ睘鎬у疄琛屾湁鏁堟帶鍒躲?span lang="EN-US">MapViewOfFile()鍑芥暟鍏佽鍏ㄩ儴鎴栭儴鍒嗘槧灝勬枃浠訛紝鍦ㄦ槧灝勬椂錛岄渶瑕佹寚瀹氭暟鎹枃浠剁殑鍋忕Щ鍦板潃浠ュ強(qiáng)寰呮槧灝勭殑闀垮害銆傚叾涓紝鏂囦歡鐨勫亸縐誨湴鍧鐢?span lang="EN-US">DWORD鍨嬬殑鍙傛暟dwFileOffsetHigh鍜?span lang="EN-US">dwFileOffsetLow緇勬垚鐨?span lang="EN-US">64浣嶅兼潵鎸囧畾錛岃屼笖蹇呴』鏄搷浣滅郴緇熺殑鍒嗛厤綺掑害鐨勬暣鏁板嶏紝瀵逛簬Windows鎿嶄綔緋葷粺錛屽垎閰嶇矑搴﹀浐瀹氫負(fù)64KB銆傚綋鐒?dòng)灱屼篃鍙互閫氳繃濡備笅浠g爜鏉ュ姩鎬佽幏鍙栧綋鍓嶆搷浣滅郴緇熺殑鍒嗛厤綺掑害錛?span lang="EN-US">

SYSTEM_INFO sinf;
GetSystemInfo(&sinf);
DWORD dwAllocationGranularity = sinf.dwAllocationGranularity;


銆銆鍙傛暟dwNumberOfBytesToMap鎸囧畾浜?jiǎn)鏁版嵁鏂囦欢鐨勬槧灏勯暱搴﹀Q岃繖閲岄渶瑕佺壒鍒寚鍑虹殑鏄紝瀵逛簬Windows 9x鎿嶄綔緋葷粺錛屽鏋?span lang="EN-US">MapViewOfFile()鏃犳硶鎵懼埌瓚沖澶х殑鍖哄煙鏉ュ瓨鏀炬暣涓枃浠舵槧灝勫璞★紝灝嗚繑鍥炵┖鍊鹼紙NULL錛夛紱浣嗘槸鍦?span lang="EN-US">Windows 2000涓嬶紝MapViewOfFile()鍙渶瑕佷負(fù)蹇呰鐨勮鍥炬壘鍒拌凍澶熷ぇ鐨勪竴涓尯鍩熷嵆鍙紝鑰屾棤欏昏冭檻鏁翠釜鏂囦歡鏄犲皠瀵硅薄鐨勫ぇ灝忋?span lang="EN-US">

銆銆鍦ㄥ畬鎴愬鏄犲皠鍒拌繘紼嬪湴鍧絀洪棿鍖哄煙鐨勬枃浠跺鐞嗗悗錛岄渶瑕侀氳繃鍑芥暟UnmapViewOfFile()瀹屾垚瀵規(guī)枃浠舵暟鎹槧鍍忕殑閲婃斁錛岃鍑芥暟鍘熷瀷澹版槑濡備笅錛?span lang="EN-US">

BOOL UnmapViewOfFile(LPCVOID lpBaseAddress);


銆銆鍞竴鐨勫弬鏁?span lang="EN-US">lpBaseAddress鎸囧畾浜?jiǎn)杩斿洖鍖哄煙鐨勫熀鍦板潃錛屽繀欏誨皢鍏惰瀹氫負(fù)MapViewOfFile()鐨勮繑鍥炲箋傚湪浣跨敤浜?jiǎn)鍑芥?span lang="EN-US">MapViewOfFile()涔嬪悗錛屽繀欏昏鏈夊搴旂殑UnmapViewOfFile()璋冪敤錛屽惁鍒欏湪榪涚▼緇堟涔嬪墠錛屼繚鐣欑殑鍖哄煙灝嗘棤娉曢噴鏀俱傞櫎姝や箣澶栵紝鍓嶉潰榪樻浘鐢?span lang="EN-US">CreateFile()鍜?span lang="EN-US">CreateFileMapping()鍑芥暟鍒涘緩榪囨枃浠跺唴鏍稿璞″拰鏂囦歡鏄犲皠鍐呮牳瀵硅薄錛屽湪榪涚▼緇堟涔嬪墠鏈夊繀瑕侀氳繃CloseHandle()灝嗗叾閲婃斁錛屽惁鍒欏皢浼?xì)鍑虹幇璧勬簮娉勬紡鐨勯棶棰樸?span lang="EN-US">

銆銆闄や簡(jiǎn)鍓嶉潰榪欎簺蹇呴』鐨?span lang="EN-US">API鍑芥暟涔嬪錛屽湪浣跨敤鍐呭瓨鏄犲皠鏂囦歡鏃惰繕瑕佹牴鎹儏鍐墊潵閫夌敤鍏朵粬涓浜涜緟鍔╁嚱鏁般備緥濡傦紝鍦ㄤ嬌鐢ㄥ唴瀛樻槧灝勬枃浠舵椂錛屼負(fù)浜?jiǎn)鎻愰珮閫熷害錛岀郴緇熷皢鏂囦歡鐨勬暟鎹〉闈㈣繘琛岄珮閫熺紦瀛橈紝鑰屼笖鍦ㄥ鐞嗘枃浠舵槧灝勮鍥炬椂涓嶇珛鍗蟲洿鏂版枃浠剁殑紓佺洏鏄犲儚銆備負(fù)瑙e喅榪欎釜闂鍙互鑰冭檻浣跨敤FlushViewOfFile()鍑芥暟錛岃鍑芥暟寮哄埗緋葷粺灝嗕慨鏀硅繃鐨勬暟鎹儴鍒嗘垨鍏ㄩ儴閲嶆柊鍐欏叆紓佺洏鏄犲儚錛屼粠鑰屽彲浠ョ‘淇濇墍鏈夌殑鏁版嵁鏇存柊鑳藉強(qiáng)鏃朵繚瀛樺埌紓佺洏銆?span lang="EN-US">
浣跨敤鍐呭瓨鏄犲皠鏂囦歡澶勭悊澶ф枃浠跺簲鐢ㄧず渚?span lang="EN-US">

銆銆涓嬮潰緇撳悎涓涓叿浣撶殑瀹炰緥鏉ヨ繘涓姝ヨ榪板唴瀛樻槧灝勬枃浠剁殑浣跨敤鏂規(guī)硶銆傝瀹炰緥浠庣鍙f帴鏀舵暟鎹紝騫跺疄鏃跺皢鍏跺瓨鏀句簬紓佺洏錛岀敱浜庢暟鎹噺澶э紙鍑犲崄GB錛夛紝鍦ㄦ閫夌敤鍐呭瓨鏄犲皠鏂囦歡榪涜澶勭悊銆備笅闈㈢粰鍑虹殑鏄綅浜庡伐浣滅嚎紼?span lang="EN-US">MainProc涓殑閮ㄥ垎涓昏浠g爜錛岃綰跨▼鑷▼搴忚繍琛屾椂鍚姩錛屽綋绔彛鏈夋暟鎹埌杈炬椂灝嗕細(xì)鍙戝嚭浜嬩歡hEvent[0]錛?span lang="EN-US">WaitForMultipleObjects()鍑芥暟絳夊緟鍒拌浜嬩歡鍙戠敓鍚庡皢鎺ユ敹鍒扮殑鏁版嵁淇濆瓨鍒扮鐩橈紝濡傛灉緇堟鎺ユ敹灝嗗彂鍑轟簨浠?span lang="EN-US">hEvent[1]錛屼簨浠跺鐞嗚繃紼嬪皢璐熻矗瀹屾垚璧勬簮鐨勯噴鏀懼拰鏂囦歡鐨勫叧闂瓑宸ヤ綔銆備笅闈㈢粰鍑烘綰跨▼澶勭悊鍑芥暟鐨勫叿浣撳疄鐜拌繃紼嬶細(xì)

鈥︹?br />// 鍒涘緩鏂囦歡鍐呮牳瀵硅薄錛屽叾鍙ユ焺淇濆瓨浜?span lang="EN-US">hFile
HANDLE hFile = CreateFile("Recv1.zip",
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_FLAG_SEQUENTIAL_SCAN,
NULL);

//
鍒涘緩鏂囦歡鏄犲皠鍐呮牳瀵硅薄錛屽彞鏌勪繚瀛樹簬hFileMapping
HANDLE hFileMapping = CreateFileMapping(hFile,NULL,PAGE_READWRITE,
0, 0x4000000, NULL);
//
閲婃斁鏂囦歡鍐呮牳瀵硅薄
CloseHandle(hFile);

//
璁懼畾澶у皬銆佸亸縐婚噺絳夊弬鏁?span lang="EN-US">
__int64 qwFileSize = 0x4000000;
__int64 qwFileOffset = 0;
__int64 T = 600 * sinf.dwAllocationGranularity;
DWORD dwBytesInBlock = 1000 * sinf.dwAllocationGranularity;

// 灝嗘枃浠舵暟鎹槧灝勫埌榪涚▼鐨勫湴鍧絀洪棿
PBYTE pbFile = (PBYTE)MapViewOfFile(hFileMapping,
FILE_MAP_ALL_ACCESS,
(DWORD)(qwFileOffset>>32), (DWORD)(qwFileOffset&0xFFFFFFFF), dwBytesInBlock);
while(bLoop)
{
//
鎹曡幏浜嬩歡hEvent[0]鍜屼簨浠?span lang="EN-US">hEvent[1]
DWORD ret = WaitForMultipleObjects(2, hEvent, FALSE, INFINITE);
ret -= WAIT_OBJECT_0;
switch (ret)
{
// 鎺ユ敹鏁版嵁浜嬩歡瑙﹀彂
case 0:
//
浠庣鍙f帴鏀舵暟鎹茍淇濆瓨鍒板唴瀛樻槧灝勬枃浠?span lang="EN-US">
nReadLen=syio_Read(port[1], pbFile + qwFileOffset, QueueLen);
qwFileOffset += nReadLen;

// 褰撴暟鎹啓婊?span lang="EN-US">60%鏃訛紝涓洪槻鏁版嵁婧㈠嚭錛岄渶瑕佸湪鍏跺悗寮杈熶竴鏂扮殑鏄犲皠瑙嗗浘
if (qwFileOffset > T)
{
T = qwFileOffset + 600 * sinf.dwAllocationGranularity;
UnmapViewOfFile(pbFile);
pbFile = (PBYTE)MapViewOfFile(hFileMapping,
FILE_MAP_ALL_ACCESS,
(DWORD)(qwFileOffset>>32), (DWORD)(qwFileOffset&0xFFFFFFFF), dwBytesInBlock);
}
break;

//
緇堟浜嬩歡瑙﹀彂
case 1:
bLoop = FALSE;

//
浠庤繘紼嬬殑鍦板潃絀洪棿鎾ゆ秷鏂囦歡鏁版嵁鏄犲儚
UnmapViewOfFile(pbFile);

//
鍏抽棴鏂囦歡鏄犲皠瀵硅薄
CloseHandle(hFileMapping);
break;
}
}
鈥?o:p>


銆銆鍦ㄧ粓姝簨浠惰Е鍙戝鐞嗚繃紼嬩腑濡傛灉鍙畝鍗曠殑鎵цUnmapViewOfFile()鍜?span lang="EN-US">CloseHandle()鍑芥暟灝嗘棤娉曟紜爣璇嗘枃浠剁殑瀹為檯澶у皬錛屽嵆濡傛灉寮杈熺殑鍐呭瓨鏄犲皠鏂囦歡涓?span lang="EN-US">30GB錛岃屾帴鏀剁殑鏁版嵁鍙湁14GB錛岄偅涔堜笂榪扮▼搴忔墽琛屽畬鍚庯紝淇濆瓨鐨勬枃浠墮暱搴︿粛鏄?span lang="EN-US">30GB銆備篃灝辨槸璇達(dá)紝鍦ㄥ鐞嗗畬鎴愬悗榪樿鍐嶆閫氳繃鍐呭瓨鏄犲皠鏂囦歡鐨勫艦寮忓皢鏂囦歡鎭㈠鍒板疄闄呭ぇ灝忥紝涓嬮潰鏄疄鐜版瑕佹眰鐨勪富瑕佷唬鐮侊細(xì)

// 鍒涘緩鍙﹀涓涓枃浠跺唴鏍稿璞?span lang="EN-US">
hFile2 = CreateFile("Recv.zip",
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_FLAG_SEQUENTIAL_SCAN,
NULL);

//
浠ュ疄闄呮暟鎹暱搴﹀垱寤哄彟澶栦竴涓枃浠舵槧灝勫唴鏍稿璞?span lang="EN-US">
hFileMapping2 = CreateFileMapping(hFile2,
NULL,
PAGE_READWRITE,
0,
(DWORD)(qwFileOffset&0xFFFFFFFF),
NULL);

// 鍏抽棴鏂囦歡鍐呮牳瀵硅薄
CloseHandle(hFile2);

//
灝嗘枃浠舵暟鎹槧灝勫埌榪涚▼鐨勫湴鍧絀洪棿
pbFile2 = (PBYTE)MapViewOfFile(hFileMapping2,
FILE_MAP_ALL_ACCESS,
0, 0, qwFileOffset);

//
灝嗘暟鎹粠鍘熸潵鐨勫唴瀛樻槧灝勬枃浠跺鍒跺埌姝ゅ唴瀛樻槧灝勬枃浠?span lang="EN-US">
memcpy(pbFile2, pbFile, qwFileOffset);

file://浠庤繘紼嬬殑鍦板潃絀洪棿鎾ゆ秷鏂囦歡鏁版嵁鏄犲儚
UnmapViewOfFile(pbFile);
UnmapViewOfFile(pbFile2);

//
鍏抽棴鏂囦歡鏄犲皠瀵硅薄
CloseHandle(hFileMapping);
CloseHandle(hFileMapping2);

//
鍒犻櫎涓存椂鏂囦歡
DeleteFile("Recv1.zip");


銆銆緇撹

銆銆緇忓疄闄呮祴璇曪紝鍐呭瓨鏄犲皠鏂囦歡鍦ㄥ鐞嗗ぇ鏁版嵁閲忔枃浠舵椂琛ㄧ幇鍑轟簡(jiǎn)鑹ソ鐨勬ц兘錛屾瘮閫氬父浣跨敤CFile綾誨拰ReadFile()鍜?span lang="EN-US">WriteFile()
絳夊嚱鏁扮殑鏂囦歡澶勭悊鏂瑰紡鍏鋒湁鏄庢樉鐨勪紭鍔褲傛湰鏂囨墍榪頒唬鐮佸湪Windows 98涓嬬敱Microsoft Visual C++ 6.0緙栬瘧閫氳繃銆?/span>



frank.sunny 2007-03-30 21:16 鍙戣〃璇勮
]]>
[杞澆]Windows騫沖彴涓嬬殑澶氱嚎紼嬬紪紼?/title><link>http://www.shnenglu.com/franksunny/archive/2007/01/26/18029.html</link><dc:creator>frank.sunny</dc:creator><author>frank.sunny</author><pubDate>Fri, 26 Jan 2007 14:10:00 GMT</pubDate><guid>http://www.shnenglu.com/franksunny/archive/2007/01/26/18029.html</guid><wfw:comment>http://www.shnenglu.com/franksunny/comments/18029.html</wfw:comment><comments>http://www.shnenglu.com/franksunny/archive/2007/01/26/18029.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/franksunny/comments/commentRss/18029.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/franksunny/services/trackbacks/18029.html</trackback:ping><description><![CDATA[     鎽樿: 铏界劧鑷繁鐢ㄥ綰跨▼緙栫▼鐢ㄨ繃涓闃靛瓙錛屼絾鏄湭鏇句粩緇嗕簡(jiǎn)瑙h繃姒傚康錛岀敤鐨勪篃鏄貢涔辯殑錛屼粖澶╃湅鍒頒竴綃囩嚎紼嬫葷粨鐨勬枃绔狅紝鎰熻璁茬殑寰堝ソ錛學(xué)indows涓嬬殑澶氱嚎紼嬩篃灝辨槸浜?jiǎn)瑙d簡(jiǎn)绾拷E嬬殑姒傚康鐒跺悗鍔犱竴鍚屾浠g爜灝辮浜?jiǎn)銆? Windows騫沖彴涓嬬殑澶氱嚎紼嬬紪紼? 聽 ...  <a href='http://www.shnenglu.com/franksunny/archive/2007/01/26/18029.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/franksunny/aggbug/18029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/franksunny/" target="_blank">frank.sunny</a> 2007-01-26 22:10 <a href="http://www.shnenglu.com/franksunny/archive/2007/01/26/18029.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏋氫婦涓插彛鍥涙硶http://www.shnenglu.com/franksunny/archive/2006/10/10/13551.htmlfrank.sunnyfrank.sunnyTue, 10 Oct 2006 15:31:00 GMThttp://www.shnenglu.com/franksunny/archive/2006/10/10/13551.htmlhttp://www.shnenglu.com/franksunny/comments/13551.htmlhttp://www.shnenglu.com/franksunny/archive/2006/10/10/13551.html#Feedback4http://www.shnenglu.com/franksunny/comments/commentRss/13551.htmlhttp://www.shnenglu.com/franksunny/services/trackbacks/13551.html

 

鏋氫婦涓插彛鍥涙硶

 

涓插彛浣滀負(fù)鏈鍩烘湰鐨勭數(shù)鑴戦氫俊 I/O 鎺ュ彛錛屽叾浣跨敤铏界劧鍦?nbsp;PC 涓婅秺鏉ヨ秺灝戯紝浣嗘槸鍦ㄥ伐涓氫華鍣ㄩ鍩熶粛鐒剁敤鐨勭浉褰撴櫘閬嶏紝鐢變簬絎旇呭伐浣滀腑闇瑕佺敤鍒頒覆鍙o紝鑰屼笖鍙戠幇鏋氫婦涓插彛鑷充粖浠嶆湭鎼炲緱寰堟竻妤氾紝涓烘鑷繁鍏堟暣鐞嗕笅錛屽笇鏈涘ぇ渚犲拰鍚岃浠鎴戜笉鎳傚拰閿欒鐨勫湴鏂規(guī)寚鐐逛竴涓嬨?/p>

 

1 銆佹煡璇㈡敞鍐岃〃

鏌ヨ娉ㄥ唽琛ㄧ殑鏂規(guī)硶鏄綉涓婅鍒扮殑姣旇緝甯歌鐨勬柟娉曪紝璇ユ柟娉曞氨鏄嬌鐢ㄧ紪紼嬫柟娉曡鍙栨敞鍐岃〃鍐呬俊鎭紝鐩稿綋浜庣敤鎴烽氳繃鍦ㄨ繍琛屾鍐呰緭鍏?nbsp;”regedit” 錛堟垨 regedit32 錛夌洿鎺ユ墦寮娉ㄥ唽琛紝鏌ョ湅“ HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM ”欏規(guī)潵鑾峰彇涓插彛淇℃伅銆備互涓嬫槸婧愪唬鐮侊細(xì)

CString   strSerialList[256];  // 涓存椂瀹氫箟 256 涓瓧絎︿覆緇勶紝鍥犱負(fù)緋葷粺鏈澶氫篃灝?nbsp;256 涓?/p>

HKEY hKey;

LPCTSTR data_Set="HARDWARE\\DEVICEMAP\\SERIALCOMM\\";

long ret0 = (::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_READ, &hKey));

if(ret0 != ERROR_SUCCESS)

{

return -1;

}

int i = 0;

CHAR Name[25];

UCHAR szPortName[25];

LONG Status;

DWORD dwIndex = 0;

DWORD dwName;

DWORD dwSizeofPortName;

DWORD Type;

dwName = sizeof(Name);

dwSizeofPortName = sizeof(szPortName);

do

{

Status = RegEnumValue(hKey, dwIndex++, Name, &dwName, NULL, &Type,

      szPortName, &dwSizeofPortName);

if((Status == ERROR_SUCCESS)||(Status == ERROR_MORE_DATA))

{

strSerialList[i] = CString(szPortName);       // 涓插彛瀛楃涓蹭繚瀛?/p>

i++;// 涓插彛璁℃暟

   }

} while((Status == ERROR_SUCCESS)||(Status == ERROR_MORE_DATA));

RegCloseKey(hKey);

浠ヤ笂鏂規(guī)硶鍚屾牱涔熷彲浠ュ疄鐜板騫跺彛鐨勬煡璇紝鍙灝?nbsp;"HARDWARE \\ DEVICEMAP\\ SERIALCOMM\\" 鐢?nbsp;"HARDWARE\\DEVICEMAP\\PARALLEL PORTS\\" 浠f浛灝辮浜?jiǎn)銆?/p>

姣旇緝錛氳鏂規(guī)硶鏃墮棿鏈鐪侊紝絎旇呭湪鑷繁鐢?shù)鑴戜笂璇晿q囷紝鍦?nbsp;1ms 錛堝皯浜?nbsp;1ms 鐨勬垜涔熶笉鐭ラ亾鎬庝箞緙栫▼璁℃椂錛夊唴鍗沖彲瀹屾垚錛涘悓鏃朵篃鍙В鍐?nbsp;usb 杞覆鍙h澶囩殑闂錛屾瘮杈冨疄鐢紝鍞竴緙虹偣鏄紝濡傛灉鐢ㄦ埛鍦ㄨ鏌愪簺杞‖浠舵椂鍦ㄦ敞鍐岃〃涓敞鍐屼簡(jiǎn)铏氭嫙涓插彛涔嬬被鐨勶紝鐢ㄦ娉曟灇涓懼緱鍒扮殑璇ョ被涓插彛瀹為檯涓婃槸涓嶈兘褰撲覆鍙g敤鐨勩?/p>

 

2 銆佷嬌鐢?nbsp;EnumPort 鏂規(guī)硶

璇ユ柟娉曡皟鐢?nbsp;EnumPort 錛堬級(jí) API 鍑芥暟錛岃鍑芥暟鏈韓灝辨槸鏋氫婦鐢?shù)鑴戠鍙g敤鐨勫Q屽畠鏋氫婦鐨勫茍闈炲彧鏈変覆鍙o紝鎵浠ュ繀欏誨鍏舵墍寰椾覆鍙h繘琛屽垎鏋愰夋嫨錛屼互涓嬫槸婧愪唬鐮侊細(xì)

       int m_nSerialPortNum(0);// 涓插彛璁℃暟

       CString          strSerialList[256];  // 涓存椂瀹氫箟 256 涓瓧絎︿覆緇?/p>

       LPBYTE pBite  = NULL;

       DWORD pcbNeeded = 0;  // bytes received or required

       DWORD pcReturned = 0;  // number of ports received

       m_nSerialPortNum = 0;

       // 鑾峰彇绔彛淇℃伅錛岃兘寰楀埌绔彛淇℃伅鐨勫ぇ灝?nbsp;pcbNeeded

       EnumPorts(NULL, 2, pBite, 0, &pcbNeeded, &pcReturned);

       pBite = new BYTE[pcbNeeded];

       // 鏋氫婦绔彛錛岃兘寰楀埌绔彛鐨勫叿浣撲俊鎭?nbsp;pBite 浠ュ強(qiáng)绔彛鐨勭殑涓暟 pcReturned

       EnumPorts(NULL, 2, pBite, pcbNeeded, &pcbNeeded, &pcReturned);

       PORT_INFO_2 *pPort;

       pPort = (PORT_INFO_2*)pBite;

       for ( i = 0; i < pcReturned; i++)

       {

              CString str = pPort[i].pPortName;

              // 涓插彛淇℃伅鐨勫叿浣撶‘瀹?/p>

              if (str.Left(3) == "COM")

              {                  

                     strSerialList[m_nSerialPortNum] = str.Left(strlen(str) - 1);

                     //CString temp = str.Right(strlen(str) - 3);// 涓嬮潰涓よ娉ㄩ噴鑾峰彇涓插彛搴忓彿鐢?/p>

                     //m_nSerialPortNo[m_nSerialPortNum] = atoi(temp.Left(strlen(temp) - 1));

                     m_nSerialPortNum++;                

              }

       }

浠ヤ笂鏂規(guī)硶闄や簡(jiǎn)涓插彛錛岃繕鍙互鏋氫婦鎵鏈夌殑騫跺彛鍜屾墦鍗版満絳夋帴鍙o紝鑰屼笖鑳芥壘鍒拌櫄鎷熶覆鍙o紙榪欎簺涓插彛鏈変簺鏈嬌鐢ㄦ椂錛屽湪娉ㄥ唽琛ㄥ拰紜歡璁懼綆$悊鍣ㄤ腑鏄笉鑳藉彇寰楃殑錛夈備絾鏄鏂規(guī)硶紼嶅井鑰楁椂浜涳紝絎旇呭湪鑷繁鐢?shù)鑴戜笂璇晿q囷紝澶ф闇瑕佸嚑鍗?nbsp;ms 錛屼富瑕侀棶棰樻槸璇ユ柟娉曟湁浜?nbsp;usb 涓插彛騫朵笉鑳芥煡鍒幫紝鎵浠ヨ鏂規(guī)硶騫朵笉鍙潬銆?/p>

 

3 銆佷緷嬈℃墦寮涓插彛鐨勬柟娉?/p>

璇ユ柟娉曞氨鏄腑瑙勪腑鐭╃殑渚濇鎵撳紑涓插彛錛岀湅鎵撳紑鏄惁鎴愬姛鏉ュ垽鏂覆鍙g殑鏈夋棤錛岃鏂規(guī)硶婧愪唬鐮佸涓嬶細(xì)

       int m_nSerialPortNum(0);// 涓插彛鏁?/p>

       CString          strSerialList[256];  // 涓存椂瀹氫箟 30 涓瓧絎︿覆緇?/p>

       int nCom = 0;

       int count = 0;

       HANDLE hCom;

       do {

              nCom++;

              strCom.Format("COM%d", nCom);

              hCom = CreateFile(strCom, 0, 0, 0,

                     OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

              if(INVALID_HANDLE_VALUE == hCom )

                     break;

              strSerialList[m_nSerialPortNum] = strCom;

              m_nSerialPortNum++;         

              CloseHandle(hCom);

       } while(1);

浠ヤ笂鏂規(guī)硶鏋氫婦鐨勯兘鏄綋鍓嶅彲鐢ㄧ殑涓插彛錛屽鏋滄湁涓涓覆鍙e綋鍓嶈鍗犵敤鍒欏叾鍚庣殑涓插彛涔熷皢鏃犳硶鏋氫婦寰楀埌錛屽綋鐒朵互涓婃柟娉曚篃鍙互鏀規(guī)垚璋冪敤 for 寰幆璁╁叾鏋氫婦鎵撳紑 256 涓覆鍙g殑鏂規(guī)硶浠ラ伩鍏嶄笂榪版儏鍐碉紝涓嶈繃璇ユ柟娉曟瘮鍓嶄袱縐嶆洿鑰楁椂錛堜竴鑸煡鎵句竴涓覆鍙e氨瑕?nbsp;15ms 宸﹀彸錛夛紝涓嶈繃鍙互鏋氫婦寰楀埌鎵鏈夊綋鍓嶅彲鎵撳紑鐨勪覆鍙o紝褰撶劧涓嶈兘鏋氫婦寰楀埌涓浜涜櫄鎷熶覆鍙c?/p>

 

4 銆佷嬌鐢?nbsp;SetupAPI 鍑芥暟闆嗙殑鏂規(guī)硶

姝ょ鏂規(guī)硶鏄垜鎵瑙佽繃鏈綆鍗曠殑鏂規(guī)硶錛屼箣鎵浠ョ畝鍗曟槸鍥犱負(fù)宸茬粡鏈変漢灝嗗鏉傜殑浠g爜灝佽璧鋒潵浜?jiǎn)锛屾垜鍙渶鍍忓偦瀛愪竴鏍瘋皟鐢ㄥ氨鍙互瀹屾垚宸ヤ綔浜?jiǎn)锛屽叿浣撶殑璇存槑璇风?a >http://www.codeguru.com/Cpp/W-P/system/hardwareinformation/article.php/c5721/ 錛屼笅闈㈢粰鍑烘湰浜鴻皟鐢ㄨ鏂規(guī)硶鐨勪緥瀛愪唬鐮侊細(xì)

       int m_nSerialPortNum(0);// 涓插彛璁℃暟

       CString          strSerialList[256];  // 涓存椂瀹氫箟 256 涓瓧絎︿覆緇?/p>

       CArray<SSerInfo,SSerInfo&> asi;

       EnumSerialPorts(asi,TRUE);// 鍙傛暟涓?nbsp;TRUE 鏃舵灇涓懼綋鍓嶅彲浠ユ墦寮鐨勪覆鍙o紝 
// 鍚﹀垯鏋氫婦鎵鏈変覆鍙?/p>

       m_nSerialPortNum = asi.GetSize();

       for (int i=0; i<asi.GetSize(); i++)

       {

              CString str = asi[i].strFrien dlyName;

       }

琛ュ厖璇存槑涓涓嬶紝浣跨敤璇ユ柟娉曞彧瑕佸湪浣犵殑紼嬪簭涓紝娣誨姞“ EnumSerial.cpp ”鍜?#8220; EnumSerial.h ”涓や釜鏂囦歡錛屽茍涓斿皢 Setupapi.lib 鍖呭惈榪涗綘鐨勫伐紼嬫枃浠朵腑灝辮浜?jiǎn)锛岃鏂规硶鏃堕棿涓婃潵璇村彲鑳藉拰绗笁绉嶆栆?guī)硶宸笉澶氾紝浣嗚鏂規(guī)硶鑾峰彇鐨勪覆鍙e畬瀹屽叏鍏ㄥ氨鏄‖浠惰澶囩鐞嗗櫒涓殑涓插彛銆?/p>

浠ヤ笂鏄瑪鑰呭鏋氫婦涓插彛鍑犵鏂規(guī)硶鐨勫皬緇擄紝鏈変簺娌″紕鏄庣櫧鎴栧惈緋婄殑鍦版柟錛岃繕璇鋒寚姝c?/p>

 

 



frank.sunny 2006-10-10 23:31 鍙戣〃璇勮
]]>
濡備綍鍘婚櫎瀵硅瘽妗嗛粯璁ょ殑Enter鍜孍sc鎸夐敭鍝嶅簲http://www.shnenglu.com/franksunny/archive/2006/09/19/12694.htmlfrank.sunnyfrank.sunnyMon, 18 Sep 2006 22:49:00 GMThttp://www.shnenglu.com/franksunny/archive/2006/09/19/12694.htmlhttp://www.shnenglu.com/franksunny/comments/12694.htmlhttp://www.shnenglu.com/franksunny/archive/2006/09/19/12694.html#Feedback1http://www.shnenglu.com/franksunny/comments/commentRss/12694.htmlhttp://www.shnenglu.com/franksunny/services/trackbacks/12694.html

濡備綍鍘婚櫎瀵硅瘽妗嗛粯璁ょ殑Enter鍜?span lang="EN-US">Esc鎸夐敭鍝嶅簲

MFC 浠庣畝鍖栨柟渚垮叆鎵嬶紝涓烘垜浠垱寤虹殑瀵硅瘽妗嗭紝閮藉鍔犱簡(jiǎn)涓涓己鐪佺殑 Enter 鍜?/span> Esc 閿搷搴旓紝鍓嶈呭搷搴斿璇濇鐨?/span> IDOK 鎸夐挳錛屽悗鑰呭搷搴?/span> IDCANCEL 鎸夐挳錛屼絾鏄湁鏃舵垜浠垱寤虹殑瀵硅瘽妗嗕笉闇瑕佽繖涓畝渚跨殑鍝嶅簲鎿嶄綔錛屽鎬殑鏄垜浠湪鍘婚櫎 IDOK 鎸夐挳鍜?/span> IDCANCEL 鎸夐挳鍚庤繕鏄疄鐜頒笉浜?jiǎn)绂佹濡備笂涓や釜缂虹渷鎸夐敭鐨勫搷搴斻傞偅涔堣濡備綍瀹炵幇鍛紝浠ヤ笅渚挎槸瑙e喅榪囩▼錛堜互鍘婚櫎 Enter 閿搷搴斾負(fù)渚嬶級(jí)錛?/span>

棣栧厛錛屽埄鐢?/span> ClassWizard 涓哄璇濇鐨?/span> IDOK 娣誨姞鍗曞嚮鍝嶅簲鍑芥暟錛屽幓闄よ鍑芥暟涓粯璁ょ殑 OnOK 鍑芥暟鍝嶅簲錛屽涓嬫墍紺?/span>

void CDialogDemoDlg::OnOK()

{

聽聽聽聽聽 CDialog::OnOK();

}

鏀逛負(fù)

void CDialogDemoDlg::OnOK()

{

聽聽聽聽聽 //CDialog::OnOK();

}

娉細(xì)榪涜濡備笂榪欐鍚庯紝鏄劇劧浣犱笉璁哄啀鎬庝箞鎸?/span> Enter 閿兘鏃犳硶浣垮璇濇閫鍑轟簡(jiǎn)錛屼絾鏄篃瀵艱嚧璇ュ璇濇灝辯畻鐢ㄦ埛鐢ㄩ紶鏍囩偣鍑?/span> IDOK 鎸夐挳涔熸棤娉曞疄鐜板璇濇榛樿鐨?/span> OnOK 鍑芥暟浜?jiǎn)銆傛墍浠ヨ繖涓姝ュ彧鏄В鍐充簡(jiǎn)涓涓幇璞¢棶棰橈紝鏈病鏈夌湡姝hВ鍐抽棶棰樸備笅闈㈡垜浠鎭㈠榪欎釜鎸夐挳鐨勫姛鑳姐?/span>

鍏舵錛屽幓闄ょ己鐪佹寜閽傚湪璧勬簮瑙嗗浘涓嬶紝灝?/span> IDOK 鎸夐挳灞炴ф爮涓殑 Default button 灞炴у嬀鍘匯備嬌寰楅粯璁?/span> Enter 閿笉鍐嶇戶緇搷搴旇鎸夐挳銆?/span>

絎笁錛屾仮澶?/span> OnOk 鍑芥暟鐨勫姛鑳姐傞鍏堝湪璧勬簮瑙嗗浘涓紝灝?/span> IDOK 鎸夐挳鐨?/span> ID 鏀瑰彉涓?/span> IDC_OK( 榪欓噷鐢ㄦ埛鏍規(guī)嵁闇瑕佸彲浠ヨ嚜宸辮緗祫婧愮殑 ID) 錛涘叾嬈′負(fù)鍏舵坊鍔犲崟鍑誨搷搴斿嚱鏁幫紝騫跺湪闇瑕佹墽琛岀粨鏉熺殑浠g爜鍚庢坊鍔?/span> CDialog::OnOK() 鍑芥暟錛屽涓嬫墍紺猴細(xì)

void CDialogDemoDlg::OnOk()

{

聽聽聽聽聽 ......// 鐪佸叾瀹冨鐞嗕唬鐮?/span>

聽聽聽聽聽 CDialog::OnOK();

}

濡備笂鎵榪拌繃紼嬪悗錛屾暣涓?/span> Enter 閿粯璁ゅ搷搴斿凡緇忓幓闄わ紝鑰屼笖涔熶笉浼?xì)濯?jiǎng)鍝嶅璇濇姝e父鍝嶅簲 OnOK 鍑芥暟鐨勫姛鑳斤紝鍦ㄥ涓婂璇濇澶勭悊鍚庯紝濡傛灉 IDC_OK 鎸夐挳鐨?/span> TabOrder 灞炴т負(fù) 1 鐨勮瘽錛屾寜 Enter 閿氨鐩稿綋浜庨紶鏍囧崟鍑?/span> IDC_OK, 鎵浠ョ敤鎴峰繀欏誨湪鈥?/span> Layout 鈥濈殑鈥?/span> Tab Order 鈥濅笅闈㈤噸鏂板竷緗?/span> IDC_OK 鎸夐挳鐨?/span> TabOrder 欏哄簭銆?/span>

涔熻緇嗗績(jī)鐨勮鑰呬細(xì)鍙戠幇錛屾湁鏃跺綋涓嶇敤榪涜絎笁姝ユ搷浣滄椂錛岀洿鎺ュ皢絎竴姝?/span> OnOK() 鍑芥暟涓敞閲婄殑 CDialog::OnOK() 浠g爜閲嶆柊鍚敤錛屼篃鏄彲浠モ滃畬鎴愨濆幓闄?/span> Enter 閿粯璁ゅ搷搴旂殑鐗規(guī)э紝浣曞繀瑕佽繘琛岀涓夋榪欎箞澶嶆潅鐨勬搷浣滐紝鍏跺疄涓嶈繘琛岀涓夋鎿嶄綔錛屽茍闈炵湡姝e疄鐜頒簡(jiǎn)鍘婚櫎 Enter 閿搷搴旓紝姣斿瀵硅瘽妗嗕笂鏈変竴涓?/span> Edit 鎺т歡鏃訛紝鍦ㄧ紪杈?/span> Edit 緇撴潫鍚庯紝鐢ㄦ埛鎸変笅 Enter 閿紝紼嬪簭灝卞張椹笂鍘誨搷搴?/span> OnOK 鍑芥暟浜?jiǎn)銆?/span>

濂戒簡(jiǎn)錛屽幓闄ゅ璇濇 Enter 閿己鐪佸搷搴旂殑榪囩▼灝變粙緇嶅埌榪欓噷錛岃鑰呭彲浠ヨ瘯鐫鍘誨幓闄?/span> Esc 閿殑鍝嶅簲銆?/span>

錛堟敞錛岃鏂規(guī)硶鏈漢涔熸槸涔︿笂寰楁潵錛屼粎鍋氫釜浜烘葷粨錛?/span>



frank.sunny 2006-09-19 06:49 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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午夜羞羞| 国产精品www| 精久久久久久| 欧美专区在线| 久久精品二区| 在线观看亚洲视频| 亚洲电影免费观看高清完整版在线| 一本大道久久精品懂色aⅴ| 欧美亚洲第一区| 午夜精品福利视频| 久久国产精品99久久久久久老狼| 一区二区三区在线观看欧美| 欧美丰满高潮xxxx喷水动漫| 免费日韩成人| a4yy欧美一区二区三区| 亚洲欧美成人精品| 亚洲国产一区二区三区高清 | 久久精品国产欧美激情| 最新成人在线| 亚洲精品在线免费观看视频| 国产精品电影网站| 亚久久调教视频| 久久精品国产久精国产一老狼| 亚洲国产成人精品久久久国产成人一区 | 欧美成年人视频网站欧美| 夜夜嗨av一区二区三区中文字幕| 亚洲先锋成人| 亚洲第一综合天堂另类专| 99这里只有精品| 国产午夜精品全部视频播放| 亚洲第一黄网| 国产精品一区一区三区| 亚洲毛片在线看| 一区二区三区精品久久久| 亚洲女性喷水在线观看一区| 久久www成人_看片免费不卡| 亚洲精品日韩一| 午夜在线电影亚洲一区| 亚洲精品一区二区网址| 久久夜精品va视频免费观看| 欧美a级一区二区| 香蕉久久夜色精品国产| 欧美激情综合色综合啪啪| 久久婷婷av| 国产乱理伦片在线观看夜一区| 亚洲国产欧美一区二区三区丁香婷| 国产精品一区=区| 亚洲人体影院| 亚洲国产一区二区三区在线播| 性8sex亚洲区入口| 性欧美超级视频| 国产精品v欧美精品v日本精品动漫 | 亚洲乱码国产乱码精品精可以看| 欧美在线亚洲综合一区| 亚洲免费在线观看| 欧美日精品一区视频| 亚洲大片在线观看| 亚洲高清二区| 久久久久久9999| 久久全国免费视频| 国内精品免费在线观看| 午夜精品福利视频| 欧美亚洲综合在线| 国产精品入口麻豆原神| 亚洲午夜久久久久久久久电影院| 国产精品99久久久久久白浆小说| 欧美国产日本| 91久久在线播放| 日韩午夜av电影| 欧美日韩国产123| 日韩午夜激情| 亚洲欧美成人在线| 国产免费观看久久| 欧美一区二区精品久久911| 欧美在线欧美在线| 国模精品一区二区三区| 久久久精品国产免费观看同学| 久久久久综合| 亚洲国产精品一区二区第四页av| 模特精品裸拍一区| 亚洲美女一区| 午夜精品久久久久久久| 国产亚洲精品7777| 久久久伊人欧美| 亚洲国产精品一区二区www在线| 亚洲三级色网| 欧美日韩中字| 欧美专区第一页| 欧美激情视频在线播放 | 亚洲日本欧美天堂| 欧美日韩免费视频| 日韩午夜电影av| 一本大道久久a久久精品综合| 性久久久久久久| 国产一区观看| 欧美激情亚洲国产| 亚洲自啪免费| 欧美大片第1页| 亚洲一区久久久| 黄色欧美日韩| 欧美视频免费在线| 亚洲成色www8888| 国产亚洲精品7777| 欧美成人免费小视频| 一区二区三区三区在线| 老司机67194精品线观看| 日韩亚洲不卡在线| 国产综合自拍| 国产精品国产馆在线真实露脸 | 欧美国产一区二区三区激情无套| 一区二区三区色| 黄色成人av网| 国产精品久久久久aaaa樱花| 久久久久se| 亚洲天堂av图片| 亚洲激情六月丁香| 久久在线视频在线| 亚洲欧美99| 日韩亚洲视频在线| 在线观看成人一级片| 国产伦精品一区二区三区免费| 蜜桃久久精品乱码一区二区| 性欧美长视频| 中文久久精品| 亚洲精品资源美女情侣酒店| 美女精品自拍一二三四| 欧美亚洲一级片| 亚洲一区二区三区影院| 日韩视频一区二区三区在线播放免费观看 | 国产日韩欧美91| 欧美午夜激情小视频| 欧美区在线观看| 欧美风情在线观看| 免费一级欧美片在线播放| 欧美专区在线观看一区| 午夜日韩在线观看| 午夜精品影院| 亚洲综合首页| 亚洲欧美99| 亚洲欧美成人综合| 亚洲免费中文字幕| 亚洲欧美日韩精品在线| 亚洲欧美激情诱惑| 亚洲欧美成人一区二区在线电影| 亚洲视频第一页| 亚洲一区二区少妇| 亚洲欧美国内爽妇网| 欧美一二三视频| 久久精品一区二区三区不卡| 久久精品亚洲精品国产欧美kt∨| 欧美专区18| 噜噜噜在线观看免费视频日韩| 老色鬼精品视频在线观看播放| 久久综合九色综合欧美狠狠| 麻豆九一精品爱看视频在线观看免费| 久久久久综合网| 欧美黄色网络| 国产精品高潮呻吟久久| 国产欧美精品一区aⅴ影院| 国产欧美日韩精品a在线观看| 国产精品免费福利| 国产伊人精品| 亚洲欧洲一区二区在线播放| 一区二区日韩欧美| 亚洲欧美一级二级三级| 久久精品在线观看| 欧美国产第一页| 99视频在线精品国自产拍免费观看| 中国成人黄色视屏| 欧美一区免费视频| 欧美黑人在线播放| 国产麻豆一精品一av一免费| 一区二区亚洲精品| av72成人在线| 伊人久久亚洲美女图片| 亚洲破处大片| 亚洲女同在线| 欧美黄色精品| 亚洲欧美韩国| 欧美精品久久一区二区| 国产日韩欧美综合一区| 最新日韩中文字幕| 欧美一区二区三区在线看| 欧美成人午夜| 美女国产一区| 久久国产精品99精品国产| 亚洲大胆av| 日韩视频在线免费观看| 日韩亚洲一区二区| 亚洲国产国产亚洲一二三| 国产日韩欧美精品| 欧美日本在线播放| 国产一区二区日韩精品欧美精品| 亚洲人成网站777色婷婷| 香蕉视频成人在线观看| 91久久线看在观草草青青| 午夜久久tv| 欧美特黄一级| 亚洲美女一区| 欧美激情欧美狂野欧美精品|