锘??xml version="1.0" encoding="utf-8" standalone="yes"?> Memset 鐢ㄦ潵瀵逛竴孌靛唴瀛樼┖闂村叏閮ㄨ緗負鏌愪釜瀛楃錛屼竴鑸敤鍦ㄥ瀹氫箟鐨勫瓧絎︿覆榪涜鍒濆鍖栦負‘ ’鎴?/span>‘\ 涓昏搴旂敤鏄垵濮嬪寲鏌愪釜鍐呭瓨絀洪棿 memset鍙互鏂逛究鐨勬竻絀轟竴涓粨鏋勭被鍨嬬殑鍙橀噺鎴栨暟緇勩?/span> 濡傦細 struct sample_struct 瀵逛簬鍙橀噺 涓鑸儏鍐典笅錛屾竻絀?/span>stTest鐨勬柟娉曪細 stTest.csName[0]='\0'; 鐢?/span>memset灝遍潪甯告柟渚匡細 濡傛灉鏄暟緇勶細 struct sample_struct TEST[10]; memcpy 鐢ㄦ潵鍋氬唴瀛樻嫹璐濓紝浣犲彲浠ユ嬁瀹冩嫹璐濅換浣曟暟鎹被鍨嬬殑瀵硅薄錛屽彲浠ユ寚瀹氭嫹璐濈殑鏁版嵁闀垮害銆?br> memcpy鏄敤浜?/span>copy婧愮┖闂寸殑鏁版嵁鍒扮洰鐨勭┖闂翠腑 Strcpy 灝卞彧鑳芥嫹璐濆瓧絎︿覆浜嗭紝瀹冮亣鍒?/span>'\0'灝辯粨鏉熸嫹璐濄?/span> 渚嬶細char a[100],b[50];strcpy(a,b);濡傜敤strcpy(b,a)錛岃娉ㄦ剰a涓殑瀛楃涓查暱搴︼紙絎竴涓?/span>‘\
*vector list deque 錛寁ector鏄竴縐嶅彲浠ラ粯璁や嬌鐢ㄧ殑搴忓垪綾誨瀷錛屽綋寰堥綣佺殑瀵瑰簭鍒椾腑榪涜鎻掑叆鍜屽垹闄ょ殑鏃跺欏簲璇ョ敤list錛屽ぇ閮ㄥ垎鍙戠敓鍦ㄥ熬閮ㄧ殑璇濈敤deque榪欑鏁版嵁緇撴瀯
*榪炵畫鍐呭瓨瀹瑰櫒鍜屽熀浜庤妭鐐圭殑瀹瑰櫒鐨勫尯鍒?br />榪炵畫瀹瑰櫒vector/string/deque鍦ㄤ竴涓垨鑰呭涓唴瀛樺潡涓繚瀛樺畠浠殑鍏冪礌錛屽鏋滄柊鍏冪礌琚彃鍏ユ垨鑰呭凡瀛樺厓绱犺鍒犻櫎錛屽叾浠栧湪鍚屼竴涓唴瀛樺潡涓殑鍏冪礌蹇呴』鍚戜笂鎴栬呭悜涓嬬Щ鍔ㄦ潵涓烘柊鍏冪礌鎻愪緵絀洪棿鎴栬呭~鍏呭師鏉ヨ鍒犻櫎鐨勫厓绱犳墍鍗犵殑絀洪棿錛岃繖縐嶇Щ鍔ㄥ獎鍝嶄簡鏁堢巼銆?br />鍩轟簬鑺傜偣鐨刲ist錛屾彃鍏ユ垨鑰呭垹闄ょ殑鏃跺欎笉闇瑕佺Щ鍔?br />*搴忓垪瀹瑰櫒鍦ㄤ換鎰忎綅緗彃鍏ヤ竴涓柊鍏冪礌錛屽叧鑱斿鍣ㄤ笉鍙互
*瀹瑰櫒涓殑鏁版嵁鐨勫唴瀛樺竷灞闇瑕佸吋瀹笴鍚楋紝濡傛灉鏄紝閭e彧鑳界敤vector
*鏌ユ壘閫熷害錛屾暎鍒楀鍣ㄣ嬫帓搴忕殑vector>鏍囧噯鐨勫叧鑱斿鍣?br />*闇瑕佸彲闈犵殑鎻掑叆鍜屽垹闄ょ殑鑳藉姏錛屽鏋滄槸闇瑕佷嬌鐢ㄥ熀浜庤妭鐐圭殑瀹瑰櫒
*闇瑕佽凱浠e櫒銆佹寚閽堛佸紩鐢ㄧ殑瀹炴晥嬈℃暟鍑忓皯鍒版渶灝忥紝濡傛灉鏄紝浣跨敤浠嬩簬鑺傜偣鐨勫鍣紝涓鑸潵璇達紝鍦ㄨ繛緇鍣ㄤ笂鐨勬彃鍏ュ拰鍒犻櫎浼氫嬌鎵鏈夋寚鍚戝鍣ㄧ殑榪唬鍣ㄦ寚閽堝拰寮曠敤瀹炴晥
]]>
http://blog.csdn.net/lychee007/archive/2009/05/31/4227419.aspx
http://social.microsoft.com/Forums/es-ES/visualcpluszhchs/thread/ff6ddac2-a69d-4c02-ad20-d73cb4335c24
http://hi.baidu.com/237rxd/blog/item/35a51efa18e098859e5146b9.html
http://topic.csdn.net/t/20050712/20/4140158.html
]]>
渚?/span>:char a[100];memset(a, '\0', sizeof(a));
{
char csName[16];
int iSeq;
int iType;
};
struct sample_strcut stTest;
stTest.iSeq=0;
stTest.iType=0;
memset(&stTest,0,sizeof(struct sample_struct));
鍒?/span>
memset(TEST,0,sizeof(struct sample_struct)*10);
渚嬶細char a[100],b[50]; memcpy(b, a, sizeof(b));娉ㄦ剰濡傜敤sizeof(a)錛屼細閫犳垚b鐨勫唴瀛樺湴鍧婧㈠嚭銆?br>
strcpy鐢ㄤ簬瀛楃涓?/span>copy,閬囧埌‘\
]]>
]]>wchar_t* atow(char* src)
{
int dest_len;
dest_len = MultiByteToWideChar(CP_ACP,0,src,-1,NULL,0);
wchar_t *dest = new wchar_t[dest_len];
if(dest == NULL)
return NULL;
MultiByteToWideChar(CP_ACP,0,src,-1,dest,dest_len);
return dest;
}
]]>
1錛氱椹槸Dll鍜孡ib錛岀椹槸闈欐侀摼鎺ュ拰鍔ㄦ侀摼鎺?/p>
澶у閮芥噦鐨勶紝DLL灝辨槸鍔ㄦ侀摼鎺ュ簱錛孡IB鏄潤鎬侀摼鎺ュ簱銆侱LL鍏跺疄灝辨槸EXE錛屽彧涓嶈繃娌ain銆?/p>
鍔ㄦ侀摼鎺ユ槸鐩稿浜庨潤鎬侀摼鎺ヨ岃█鐨勩傛墍璋撻潤鎬侀摼鎺ュ氨鏄妸鍑芥暟鎴栬繃紼嬬洿鎺ラ摼鎺ュ埌鍙墽琛屾枃浠朵腑錛屾垚涓哄彲鎵ц紼嬪簭涓殑涓閮ㄥ垎錛屽綋澶氫釜紼嬪簭璋冪敤鍚屾牱鐨勫嚱鏁版椂錛屽唴瀛橀噷灝變細鏈夎繖涓嚱鏁扮殑澶氫釜鎷瘋礉錛屾氮璐瑰唴瀛樿祫婧愩傝屽姩鎬侀摼鎺ュ垯鏄彁渚涗簡涓涓嚱鏁扮殑鎻忚堪淇℃伅緇欏彲鎵ц鏂囦歡錛堝茍娌℃湁鍐呭瓨鎷瘋礉錛夛紝褰撶▼搴忚澶瑰湪鍒板唴瀛橀噷寮濮嬭繍琛岀殑鏃跺欙紝緋葷粺浼氬湪搴曞眰鍒涘緩DLL鍜屽簲鐢ㄧ▼搴忎箣闂寸殑榪炴帴鍏崇郴錛屽綋鎵ц鏈熼棿闇瑕佽皟鐢―LL鍑芥暟鏃訛紝緋葷粺鎵嶄細鐪熸鏍規嵁閾炬帴鐨勫畾浣嶄俊鎭幓鎵цDLL涓殑鍑芥暟浠g爜銆?/p>
鍦╓INDOWS32緋葷粺搴曚笅錛屾瘡涓繘紼嬫湁鑷繁鐨?2浣嶇殑綰挎у湴鍧絀洪棿錛岃嫢涓涓狣LL琚繘紼嬩嬌鐢紝鍒欒DLL棣栧厛浼氳璋冨叆WIN32緋葷粺鐨勫叏灞鍫嗘爤錛岀劧鍚庨氳繃鍐呭瓨鏄犲皠鏂囦歡鏂瑰紡鏄犲皠鍒拌繖涓狣LL鐨勮繘紼嬪湴鍧絀洪棿銆傝嫢涓涓狣LL琚涓繘紼嬭皟鐢紝鍒欐瘡涓繘紼嬮兘浼氭帴鏀跺埌璇LL鐨勪竴涓槧鍍忥紝鑰岄潪澶氫喚鐨勬嫹璐濄備絾錛屽湪WIN16緋葷粺涓嬶紝姣忎釜榪涚▼闇瑕佹嫢鏈夎嚜宸辯殑涓浠紻LL絀洪棿錛屽彲浠ョ悊瑙d負浣曢潤鎬侀摼鎺ユ病鍟ュ尯鍒?/p>
2錛欴LL鍜孡IB鍖哄埆鍜岃仈緋匯?/p>
DLL鏄▼搴忓湪榪愯闃舵鎵嶉渶瑕佺殑鏂囦歡銆?/p>
LIB鏄▼搴忕紪璇戞椂闇瑕侀摼鎺ョ殑鏂囦歡銆?/p>
DLL鍙湁涓縐嶏紝鍏朵腑涓瀹氭槸鍑芥暟鍜岃繃紼嬬殑瀹炵幇銆?/p>
LIB鏄湁涓ょ銆傝嫢鍙敓鎴怢IB鐨勮瘽錛屽垯榪欎釜LIB鏄潤鎬佺紪璇戝嚭鏉ョ殑錛屽畠鍐呴儴鍖呭惈浜嗗嚱鏁扮儲寮曚互鍙婂疄鐜幫紝榪欎釜LIB浼氭瘮杈冨ぇ銆傝嫢鐢熸垚DLL鐨勮瘽錛屽垯涔熶細鐢熸垚涓涓狶IB錛岃繖涓狶IB鍜屽垰鎵嶉偅涓狶IB涓嶅悓錛屽畠鏄彧鏈夊嚱鏁扮儲寮曪紝娌℃湁瀹炵幇鐨勶紝瀹冨緢灝忋備絾鏄繖淇㎜IB渚濈劧閬靛驚涓婁釜鍘熷垯錛屾槸鍦ㄧ紪璇戞椂鍊欐槸闇瑕佽閾炬帴鐨勩傝嫢涓嶉摼鎺ョ涓涓狶IB鐨勮瘽錛屽湪紼嬪簭榪愯鏃朵細鏃犳硶鎵懼埌鍑芥暟瀹炵幇錛屽綋鎺夈傝嫢涓嶉摼鎺ョ浜屼釜LIB鐨勮瘽錛屽湪紼嬪簭榪愯鏃朵緷鐒朵細鏃犳硶鎵懼埌鍑芥暟瀹炵幇銆備絾絎簩縐峀IB鏈変竴縐嶆浛浠f柟寮忥紝灝辨槸鍦ㄧ▼搴忛噷錛屼嬌鐢↙oadLibrary,GetProcAddress鏇夸唬絎簩涓狶IB鐨勫姛鑳姐傜涓縐峀IB鐢熸垚鐨凟XE鏂囦歡浼氬緢澶э紝鍥犱負LIB鎵鏈変俊鎭闈欐侀摼鎺ヨ繘EXE閲屼簡銆傜浜岀LIB鐢熸垚鐨凟XE鏂囦歡浼氭瘮杈冨皬錛屽洜涓哄嚱鏁拌繃紼嬪疄鐜頒緷鏃у湪DLL鍐呫?/p>
錛堝暟鍡︿簡涓鍫嗭紝鏌愬織甯屾湜澶у鑳藉鏄庣櫧涓や釜LIB鐨勫尯鍒傝鍐嶄笉琛岀殑璇濓紝鎴戜滑鍙互灝嗛潤鎬佺紪璇戠殑LIB縐頒負 闈欐侀摼鎺ュ簱銆備絾鍔ㄦ佺紪璇戠殑LIB縐頒負 寮曞叆搴撱傚彲鑳戒細姣旇緝濂戒竴浜涖傦級
闈欐侀摼鎺IB鐨勪紭鐐規槸鍏嶉櫎鎸傛帴鍔ㄦ侀摼鎺ュ簱錛岀己鐐規槸EXE澶э紝鐗堟湰鎺у埗楹葷儲浜涖?/p>
鍔ㄦ侀摼鎺LL鐨勪紭鐐規槸鏂囦歡灝忥紝鐗堟湰鏇存崲鏃舵崲DLL灝卞ソ浜嗭紝緙虹偣鏄浜嗙偣鏂囦歡銆傚姩鎬侀摼鎺ヨ嫢鏄澶氫釜榪涚▼浣跨敤錛屼細鏇村姞鏂逛究鍜岃妭鐪佸唴瀛樸?/p>
3錛氫負浠涔堢紪璇慏LL鏃舵諱細鍚屾椂鐢熸垚涓涓狶IB錛熻繖涓狶IB鏈夌敤鍚楋紵
鑻ユ垜浠笉鏄敤闈欐侀摼鎺ワ紝鑰屼嬌鐢―LL錛岄偅涔堟垜浠篃闇瑕佷竴涓狶IB錛岃繖涓狶IB鐨勪綔鐢ㄦ槸琚摼鎺ュ埌紼嬪簭閲岋紝鍦ㄧ▼搴忚繍琛屾椂鍛婅瘔緋葷粺浣犻渶瑕佷粈涔圖LL鏂囦歡銆傝繖涓狶IB閲屼繚瀛樼殑鏄疍LL鐨勫悕瀛楀拰杈撳嚭鍑芥暟鍏ュ彛鐨勯『搴忚〃銆傚畠鏄湁鎰忎箟鐨勩?/p>
褰撶劧錛岃嫢鎴戜滑鐨勫簲鐢ㄧ▼搴忛噷涓嶉摼鎺ヨ繖涓狶IB錛屽垯鍙互浣跨敤LoadLibrary,GetProcAddress鏉ュ憡璇夌郴緇熸垜浠湪榪愯鏃墮渶瑕佹庝箞鐫DLL浠ュ強鍏跺唴鐨勫嚱鏁般?/p>
4錛欴LL鎰忎箟銆?/p>
1錛欴LL鐪熸瀹炵幇浜嗚法璇█銆傚悇縐嶈璦閮藉彲浠ョ敓鎴怐LL錛岃屽緋葷粺浠ュ強搴旂敤紼嬪簭鏉ヨ錛屽摢縐嶈璦鐢熸垚鐨凞LL鏄病鏈夊尯鍒殑銆?/p>
2錛欴LL鏈夎凍澶熺殑灝佽鎬э紝瀵逛簬鐗堟湰鏇存柊鏈夊緢澶уソ澶勩傚洜涓篋LL鏄繍琛屾湡闂存墠浼氫嬌鐢紝鎵浠ワ紝鍗充嬌DLL鍐呭嚱鏁板疄鐜版湁鍙樺寲錛堝彧瑕佸弬鏁板拰榪斿洖鍊間笉鍙戠敓鍙樺寲錛夛紝紼嬪簭鏄笉闇瑕佽繘琛岀紪璇戠殑銆傚ぇ澶ф彁楂樹簡杞歡寮鍙戝拰緇存姢鐨勬晥鐜囥?/p>
3錛欴LL琚涓繘紼嬩嬌鐢紝鍥犱負鏈夊唴瀛樻槧灝勬満鍒訛紝鏃犻渶鍗犵敤鏇村鍐呭瓨銆?/p>
5錛氬垱寤篋LL銆傦紙娉ㄦ剰錛氭煇蹇楀氨涓嶅啀璁茶В浣跨敤MFC AppWizard[dll] 鏂瑰紡鍒涘緩DLL浜嗐傛湁鍏磋叮鐨勮嚜宸卞幓鐧懼害銆傝繖閲屽垱寤篋LL鍙寚浣跨敤Win32 Dynamic-link Library鍒涘緩Non-MFC DLL銆傚憙錛孌LL鐨勪笁縐嶇被鍨嬪氨涓嶈В閲婁簡錛屼緷鏃ч偅鍙ヨ瘽錛氱櫨搴︿竴涓嬩綘灝辯煡閬撱傦級
姣忎釜搴旂敤紼嬪簭蹇呴』鏈変竴涓猰ain鎴栬厀inmain鍑芥暟浣滀負鍏ュ彛錛孌LL涓鏍鳳紝鏈夎嚜宸辯殑緙虹渷鐨勫叆鍙e嚱鏁幫紝灝辨槸DllMain銆傚嚱鏁板涓?/p>
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID
lpReserved)
{
switch (ul_reason_for_call)
{
case
DLL_PROCESS_ATTACH: // 榪涚▼琚皟鐢?br> case DLL_THREAD_ATTACH: // 綰跨▼琚皟鐢?br> case
DLL_THREAD_DETACH: // 綰跨▼琚仠姝?br> case DLL_PROCESS_DETACH:
// 榪涚▼琚仠姝?br> break;
}
return TRUE;
}
涓鑸儏鍐典笅錛屾垜浠笉闇瑕佸榪欎釜緙虹渷鐨勫叆鍙e嚱鏁拌繘琛屼粈涔堜慨鏀癸紝瀹冨氨浼氫嬌鍔ㄦ侀摼鎺ュ簱寰楀埌姝g‘鐨勫垵濮嬪寲銆備絾鏄紝褰撴垜浠殑DLL闇瑕侀澶栧垎閰嶅唴瀛樻垨鑰呰祫婧愮殑鏃跺欙紝鎴栬咃紝DLL甯屾湜瀵硅皟鐢ㄨ嚜宸辯殑榪涚▼鎴栫嚎紼嬭繘琛屽垵濮嬪寲鎴栨竻闄ょ殑棰濆鎿嶄綔鏃訛紝鍙互鍦ㄤ笂榪頒唬鐮乧ase涓姞涓浜涜嚜宸辨劅鍐掔殑涓滀笢銆傦紙鎳?#8230;…涓嶆兂緇嗗啓浜? -Orz錛岀幇鍦ㄦ槸鏅氫笂2鐐逛簡錛屾槑澶╄繕涓鍫嗙殑浜嬫儏錛?/p>
DLL瀵逛簬瀵煎嚭綾誨拰瀵煎嚭鍑芥暟娌″暐涓嶅悓銆傚彧瑕佸姞涓?__declspec( dllexport ) 淇グ鍑芥暟鎴栬呯被灝卞ソ浜嗐?/p>
浣嗘槸鏈夋煡鐪嬭繃DLL浠g爜鐨勪漢鍛橀兘浼氱粡甯歌鍒拌繖涔堜竴孌典唬鐮?/p>
#ifdef FK_DLL_EXPORTS
#define FK_DLL __declspec( dllexport )
#else
#define FK_DLL __declspec( dllimport )
#endif
鎰忎箟寰堟槑鏄撅紝浣嗘槸錛岄棶棰樻槸 FK_DLL_EXPORTS 榪欎釜瀹忔槸搴旇鍦ㄥ摢鍎垮畾涔夊憿錛熷湪DLL欏圭洰鍐咃紝榪樻槸鍦ㄤ嬌鐢―LL鐨勫簲鐢ㄧ▼搴忓唴錛?/p>
榪欑偣鏌愬織鏇捐糠緋婂緢涔咃紝鍛靛懙~鍏跺疄鍚庢潵鎯蟲兂錛岃繕鏄洰鏄庣‘鐨勩俥xport鏄鍑恒俰mport鏄鍏ャ傚浜嶥LL鏉ヨ錛屾槸瑕佸鍑鴻繖浜涘嚱鏁扮粰鍏朵粬搴旂敤紼嬪簭浣跨敤鐨勶紝鎵浠ュ簲褰撳畾涔? FK_DLL_EXPORTS 瀹忋傚浜庝嬌鐢―LL鐨勫簲鐢ㄧ▼搴忔潵璇達紝鏄鍏ワ紝鏄棤闇瀹氫箟鐨勩?/p>
浣跨敤鏃跺欎篃寰堢畝鍗曘?/p>
class FK_DLL CMyDllClass{} ;
鍒欐暣涓被琚鍑恒?/p>
FK_DLL void MyTestFun( int a );
鍒欒鍑芥暟琚鍑恒?/p>
浣嗘槸鏈夋椂鎴戜滑鍙互瑙佸埌榪欐牱鐨勪唬鐮?/p>
extern "C" FK_DLL void MyTestFun2( float b );
鍏朵腑extern "C"鐨勫師鐞嗗氨鏄爣紺鴻鍑芥暟瑕佹眰浠褰㈠紡鍘昏繘琛岀紪璇戯紝涓嶈浠++褰㈠紡鍘葷紪璇戙傚叿浣撶殑緙栬瘧鍘熺悊灝變笉緗楀棪浜嗭紝綆鑰岃█涔嬶紝琚玡xtern "C"瀹氫箟鍑芥暟錛屽彲浠ヨC浠ュ強鍏朵粬璇█榪涜DLL璋冪敤錛岃屾湭琚玡xtern "C"瀹氫箟鐨勫嚱鏁幫紝C鏄棤娉曡闂瓺LL涓繖涓嚱鏁扮殑銆?/p>
鍦╒S涓紑鍙慏LL榪樻湁涓縐嶆柟寮忥紝浣跨敤.def鏂囦歡銆?/p>
鏂板緩涓枃鏈枃妗o紝鏀瑰悗緙涓篎KDll.def錛屽姞鍏ュ埌宸ョ▼閲屻?/p>
FKDll.def閲屽姞鍏ヤ互涓嬩唬鐮?/p>
LIBRARY FKDll
EXPORTS
灝卞彲浠ヤ簡銆傚叾涓紝LIBRARY璇彞鏄鏄?def鏂囦歡鏄睘浜嶧KDll榪欎釜Dll鐨勩侲XPORTS涓嬮潰鏄垜浠渶瑕佸鍑虹殑鍑芥暟鍚嶃傚悗闈㈠姞鐨凘+鏁板瓧錛屾槸琛ㄧず瀵煎嚭鍑芥暟鐨勯『搴忕紪鍙楓傝繖鏍峰氨瓚沖浜嗐傦紙璇︾粏鐨勮嚜宸辯櫨搴︼紝濂藉洶錛寊zzZZZ錛?/p>
6錛氫嬌鐢―LL
浣跨敤DLL鏈変袱縐嶆柟寮忋傛樉寮忛摼鎺ュ拰闅愬紡閾炬帴銆?/p>
闅愬紡閾炬帴寰堝鏄撱傜洿鎺?progam comment(lib, "FKDll.lib") 灝卞彲浠ャ傚綋鐒訛紝涔熷彲浠ュ湪欏圭洰宸ョ▼->灞炴?>閾炬帴搴撻噷鍔犱笂搴撳拰璺緞錛堢浉瀵硅礬寰勫拰緇濆璺緞閮藉彲浠ワ級銆?/p>
鏄懼紡閾炬帴鍒欓夯鐑︿簺銆傚湪紼嬪簭涓嬌鐢↙oadLibrary鍔犺澆DLL錛屽啀GetProcAddress鑾峰彇鍑芥暟瀹炵幇錛屽湪紼嬪簭閫鍑轟箣鍓嶏紝璋冪敤FreeLibrary鏉ュ姩鎬侀噴鏀炬帀閾炬帴搴撱?/p>
渚嬪錛?/p>
void Main()
{
typedef void (*FKDllFun1)(int a);
FKDllFun1 pFun1;
HINSTANCE hDLL = LoadLibrary("FKDll.dll"); // 鑻Dll涓虹┖鍒欒鍙朌ll澶辮觸銆?/p>
pFun1 = (pFun1)GetProcAddress(hDll, "MyTestFun1" ); // 浠庡簲鐢ㄧ▼搴忎腑鐨凞LL闀滃儚涓幏鍙栧悕涓?MyTestFun1 鐨勫嚱鏁版寚閽?/p>
pFun1( 100 );
FreeLibrary(hDll);
}
褰撶劧錛屾垜浠垰鎵?def閲岄潰榪樻寚瀹氫簡瀵煎嚭鍑芥暟鐨勫鍑洪『搴忥紝閭d箞鎴戜滑鍙互淇敼閲岄潰鑾峰彇鍑芥暟鎸囬拡閭d竴孌典負
pFun1 = (pFun1)GetProcAddress(hDll, MAKEINTERSOURCE(1) ); // 1 鏄垰鎵嶆寚瀹氱殑MyTestFun1鍑芥暟瀵煎嚭欏哄簭緙栧彿銆?/p>
榪欐牱鍙互鏇村揩錛屼絾鏄埆灝嗙紪鍙瘋娣蜂簡錛屼細瀵艱嚧璇″紓鐨勯敊璇?/p>
7錛氭瘮杈冩樉寮忛摼鎺ュ拰闅愬紡閾炬帴銆?/p>
鍙兘鐨勮瘽錛屽敖閲忎嬌鐢ㄦ樉寮忛摼鎺ャ?/p>
鏄懼紡閾炬帴鍙互鍦ㄧ▼搴忔墽琛屾椂鍔ㄦ佺殑鍔犺澆DLL鍜屽嵏杞紻LL鏂囦歡錛岄殣寮忛摼鎺ユ槸鍋氫笉鍒扮殑銆?/p>
鏄懼紡閾炬帴LoadLibrary錛孏etProcAddress鏃惰兘鑾風煡鏄惁鍔犺澆澶辮觸錛屾垜浠彲浠ュ鍏惰繘琛屾鏌ラ敊璇鐞嗐傝屾樉寮忛摼鎺ュ彲鑳芥槸涓涓緢鎭跺姡鐨勬彁紺烘垨鏄▼搴忓穿婧冪殑緇撴灉銆?/p>
瀵逛簬鏈変簺Ex綾誨瀷鐨勫姞寮哄嚱鏁幫紝鏄懼紡閾炬帴鍙互鍏佽鎴戜滑鎵懼埌鏇夸唬鏂規銆備篃鍖呮嫭閫夋嫨D3d9.dll鍜孫penGL.dll鏃朵篃鍙噰鐢ㄥ悓鏍峰鐞嗐?/p>
渚嬪錛?/p>
if( GetProcAddress( hDll, "FKDllFunEx") == NULL )
{
pFun = GetProcAddress( hDll, "FKDllFun"); // 鐒跺悗浣跨敤pFun榪涜澶勭悊
}
8錛氬鍑虹被鍜屽鍑哄嚱鏁?/p>
綾誨拰鍑芥暟鐨勫鍑烘柟寮忎笂闈㈢粰鍑轟簡璇存槑錛屽師鏈瀬鍏剁被浼肩殑銆?/p>
鎴戜滑璇翠笅浣跨敤瀵煎嚭綾匯?/p>
鑻ユ垜浠殣寮忕殑浣跨敤浜嗕竴涓鍑虹被錛屽垯鎴戜滑鍦ㄥ簲鐢ㄧ▼搴忛噷緇ф壙瀹冪殑鏃跺欙紝灝卞鍚岃綾誨氨鍦ㄥ簲鐢ㄧ▼搴忎唬鐮侀噷涓鏍鳳紝鏃犻渶浠諱綍澶勭悊銆?/p>
渚嬪錛?/p>
class FK_DLL CMyDllClass{} ; // Dll鏂囦歡鍐呯殑浠g爜
-----------------------
class CAppClass : public CMyDllClass // 搴旂敤紼嬪簭鍐呬唬鐮侊紝鏃犻渶鍋氫換浣曞鐞嗐?/p>
{
....
}
涔熷彲浠ョ洿鎺ヤ嬌鐢―LL瀵煎嚭綾?/p>
void main
{
CMyDllClass* pClass = new CMyDllClass ();
}
浣嗘槸錛岃嫢搴旂敤紼嬪簭澹版槑鎴栬呭垎綾諱竴涓狣LL涓鍑虹被鐨勫璞℃椂浼氬瓨鍦ㄤ竴涓緢璁ㄥ帉鐨勯棶棰橈細榪欎釜鎿嶄綔浼氫嬌鍐呭瓨璺熻釜緋葷粺澶辨晥錛屼嬌鍏墮敊璇殑鎶ュ憡鍐呭瓨鍒嗛厤鍜岄噴鏀炬儏鍐點?/p>
涓鴻В鍐寵繖涓棶棰橈紝鎴戜滑鍙互緇欏嚭涓や釜鎺ュ彛鍑芥暟瀵笵LL瀵煎嚭綾昏繘琛屽垱寤洪攢姣佹敮鎸侊紝灝卞彲浠ヤ嬌鍐呭瓨璺熻釜緋葷粺姝e父浜嗐備緥濡?/p>
class FK_DLL CMyDllClass{} ;
棰濆澧炲姞淇╁嚱鏁?/p>
FK_DLL CMyDllClass* CreateMyDllClass(){ return new CMyDllClass(); }
FK_DLL void DestoryMyDllClass( CMyDllClass* p_pClass ){ delete p_pClass; }
-----------------------------------------------
涓婇潰鐨勬柟娉曞彲浠ユ紜繘琛屽唴瀛樿窡韙簡錛屼絾鏄紝鍥犱負DLL瀵煎嚭綾籆MyDllClass渚濇棫鏄鍑虹殑鐘舵侊紝鐢ㄦ埛鍚屾牱鍙互璺寵繃鎴戜滑鎻愪緵鐨勬帴鍙g洿鎺ヤ嬌鐢ㄣ傞偅涔堟庝箞鍔炲憿銆傛柟娉曟槸涓嶅啀瀵圭被榪涜DLL瀵煎嚭錛岃屽綾誨唴鐨勫嚱鏁板叏閮ㄨ繘琛孌LL瀵煎嚭鍗沖彲錛?/p>
-----------------------------------------------
浣嗘槸鑻ヤ粎浠呮彁渚涗笂闈袱涓帴鍙e嚱鏁頒互鍙婄被鍐呭叏閮ㄥ嚱鏁幫紝鐨勭‘鍔熻兘鍙互瀹炵幇錛屽嵈鏃犳硶榪涜綾葷戶鎵夸簡銆傝嫢榪欎釜綾葷戶鎵垮緢閲嶈錛屽繀欏誨紑鏀撅紝閭d箞灝遍渶瑕佷嬌鐢ㄦ柊鐨勫唴瀛樿窡韙▼搴忔浛鎹㈠簲鐢ㄧ▼搴忓唴鐨勫師鏈夊唴瀛樿窡韙▼搴忋傛垨鑰呬嬌鐢ㄤ笅闈㈢殑涓涓柟娉曘傦紙瑙佹ā鍧?錛氬鏉傞棶棰橈級
-----------------------------------------------
鍚屾牱錛屾垜浠篃鍙互鍙戠幇錛屽湪涓嶅鍑篋LL綾繪湰韜紝鑰屽彧瀵煎嚭DLL綾誨唴鍑芥暟涔熸湁涓浜涘ソ澶勶紝涓浜涙垜浠笉甯屾湜澶栫晫鐭ラ亾鐨勫嚱鏁板彲浠ヤ笉璁劇疆瀵煎嚭鏍囪錛岃繖榪涗竴姝ヤ繚鎶や簡DLL鍐呭嚱鏁扮殑瀹夊叏鎬с?/p>
9錛氬鏉傞棶棰樸?/p>
鑻ユ垜浠嬌鐢↙oadLibrary鏄懼紡鍔犺澆涓涓狣LL錛屽茍灝濊瘯鍦ㄥ簲鐢ㄧ▼搴忎腑璋冪敤涓涓被鍐呮垚鍛樺嚱鏁扮殑璇濓紝鏃犺璇ュ嚱鏁版槸鍚﹀湪澶存枃浠朵腑鏈夊0鏄庯紝VS浼氱粰鍑轟竴涓?unresolved external symbol錛堟湭瑙f瀽鐨勫閮ㄧ鍙鳳級"鐨勯敊璇傛垜浠鏃跺彲浠ュ皢欏圭洰灞炴т腑鐨勫唴鑱斿嚱鏁版墿灞曢夐」淇敼涓?Only __inline"鎴?Any Suitable"鍗沖彲銆備絾錛屾垜浠彲鑳藉湪璋冭瘯榪炵紪鐨勬椂鍊欐湡鏈涘叧闂唴鑱斿嚱鏁版墿灞曪紝閭d箞鍙︿竴縐嶈В鍐蟲柟妗堟槸錛屽皢甯屾湜瀵煎嚭鐨勫嚱鏁板0鏄庝負铏氬嚱鏁幫紝渚嬪
class CMyDllClass
{
FK_DLL virtual void MyTestFun( int a ){ dosth(); }
// 鐢ㄤ笂闈唬鐮佹浛鎹?FK_DLL void MyTestFun( int a ){ dosth(); }
}
榪欐牱鍋氳繕鏈変竴涓澶栫殑濂藉銆傚皢瀵煎嚭鐨勭被鎴愬憳鍑芥暟璁劇疆涓鴻櫄鍑芥暟涔嬪悗錛岃铏氬嚱鏁版墍鍦ㄧ殑綾誨湪搴旂敤紼嬪簭涓篃濡傚悓琚0鏄庝竴鏍鳳紝鍙互鎺ュ彈緇ф壙銆?/p>
渚嬪鑻ユ槸涓婇潰鐨勫仛娉曪紝搴旂敤紼嬪簭灝卞彲浠ヨ繘琛岄『鍒╃戶鎵匡紝鑰屼笉蹇呰姹侰MyDllClass 琚爣紺轟負瀵煎嚭銆傦紙鍘熺悊涓嶇煡錛屽笇鏈涚簿閫氬簳灞傜殑楂樻墜鍗忓姪瑙i噴銆傦級
class CAppClass : public CMyDllClass // 搴旂敤紼嬪簭鍐呬唬鐮侊紝鏃犻渶鍋氫換浣曞鐞嗐?/p>
{
....
}
瑙佸埌榪欎袱涓鍙風殑寰堝涓嶅悓鐨勭敤娉曪紝鏁寸悊鍦ㄤ竴璧?/font>
瀹忎腑"#"鍜?/span>"##"鐨勭敤娉?/span>
涓銆佷竴鑸敤娉?/span>
鎴戜滑浣跨敤#鎶婂畯鍙傛暟鍙樹負涓涓瓧絎︿覆,鐢?/span>##鎶婁袱涓畯鍙傛暟璐村悎鍦ㄤ竴璧?/span>.
鐢ㄦ硶:
#include<cstdio>
#include<climits>
using namespace std;
#define STR(s) #s
#define CONS(a,b) int(a##e##b)
int main()
{
printf(STR(vck)); // 杈撳嚭瀛楃涓?/span>"vck"
printf("%d\n", CONS(2,3)); // 2e3 杈撳嚭:2000
return 0;
}
浜屻佸綋瀹忓弬鏁版槸鍙︿竴涓畯鐨勬椂鍊?/span>
闇瑕佹敞鎰忕殑鏄嚒瀹忓畾涔夐噷鏈夌敤'#'鎴?/span>'##'鐨勫湴鏂瑰畯鍙傛暟鏄笉浼氬啀灞曞紑.
1, 闈?/span>'#'鍜?/span>'##'鐨勬儏鍐?/span>
#define TOW (2)
#define MUL(a,b) (a*b)
printf("%d*%d=%d\n", TOW, TOW, MUL(TOW,TOW));
榪欒鐨勫畯浼氳灞曞紑涓猴細
printf("%d*%d=%d\n", (2), (2), ((2)*(2)));
MUL閲岀殑鍙傛暟TOW浼氳灞曞紑涓?/span>(2).
2, 褰撴湁'#'鎴?/span>'##'鐨勬椂鍊?/span>
#define A (2)
#define STR(s) #s
#define CONS(a,b) int(a##e##b)
printf("int max: %s\n", STR(INT_MAX)); // INT_MAX #include<climits>
榪欒浼氳灞曞紑涓猴細
printf("int max: %s\n", "INT_MAX");
printf("%s\n", CONS(A, A)); // compile error
榪欎竴琛屽垯鏄細
printf("%s\n", int(AeA));
A涓嶄細鍐嶈灞曞紑, 鐒惰岃В鍐寵繖涓棶棰樼殑鏂規硶寰堢畝鍗?/span>. 鍔犲涓灞備腑闂磋漿鎹㈠畯.
鍔犺繖灞傚畯鐨勭敤鎰忔槸鎶婃墍鏈夊畯鐨勫弬鏁板湪榪欏眰閲屽叏閮ㄥ睍寮, 閭d箞鍦ㄨ漿鎹㈠畯閲岀殑閭d竴涓畯(_STR)灝辮兘寰楀埌姝g‘鐨勫畯鍙傛暟.
#define A (2)
#define _STR(s) #s
#define STR(s) _STR(s) // 杞崲瀹?/span>
#define _CONS(a,b) int(a##e##b)
#define CONS(a,b) _CONS(a,b) // 杞崲瀹?/span>
printf("int max: %s\n", STR(INT_MAX)); // INT_MAX,int鍨嬬殑鏈澶у鹼紝涓轟竴涓彉閲?/span> #include<climits>
杈撳嚭涓?/span>: int max: 0x7fffffff
STR(INT_MAX) --> _STR(0x7fffffff) 鐒跺悗鍐嶈漿鎹㈡垚瀛楃涓詫紱
printf("%d\n", CONS(A, A));
杈撳嚭涓猴細200
CONS(A, A) --> _CONS((2), (2)) --> int((2)e(2))
涓夈?/span>'#'鍜?/span>'##'鐨勪竴浜涘簲鐢ㄧ壒渚?/span>
1銆佸悎騫跺尶鍚嶅彉閲忓悕
#define ___ANONYMOUS1(type, var, line) type var##line
#define __ANONYMOUS0(type, line) ___ANONYMOUS1(type, _anonymous, line)
#define ANONYMOUS(type) __ANONYMOUS0(type, __LINE__)
渚嬶細ANONYMOUS(static int); 鍗?/span>: static int _anonymous70; 70琛ㄧず璇ヨ琛屽彿錛?/span>
絎竴灞傦細ANONYMOUS(static int); --> __ANONYMOUS0(static int, __LINE__);
絎簩灞傦細 --> ___ANONYMOUS1(static int, _anonymous, 70);
絎笁灞傦細 --> static int _anonymous70;
鍗蟲瘡嬈″彧鑳借В寮褰撳墠灞傜殑瀹忥紝鎵浠?/span>__LINE__鍦ㄧ浜屽眰鎵嶈兘琚В寮錛?/span>
2銆佸~鍏呯粨鏋?/span>
#define FILL(a) {a, #a}
enum IDD{OPEN, CLOSE};
typedef struct MSG{
IDD id;
const char * msg;
}MSG;
MSG _msg[] = {FILL(OPEN), FILL(CLOSE)};
鐩稿綋浜庯細
MSG _msg[] = {{OPEN, "OPEN"},
{CLOSE, "CLOSE"}};
3銆佽褰曟枃浠跺悕
#define _GET_FILE_NAME(f) #f
#define GET_FILE_NAME(f) _GET_FILE_NAME(f)
static char FILE_NAME[] = GET_FILE_NAME(__FILE__);
4銆佸緱鍒頒竴涓暟鍊肩被鍨嬫墍瀵瑰簲鐨勫瓧絎︿覆緙撳啿澶у皬
#define _TYPE_BUF_SIZE(type) sizeof #type
#define TYPE_BUF_SIZE(type) _TYPE_BUF_SIZE(type)
char buf[TYPE_BUF_SIZE(INT_MAX)];
--> char buf[_TYPE_BUF_SIZE(0x7fffffff)];
--> char buf[sizeof "0x7fffffff"];
榪欓噷鐩稿綋浜庯細
char buf[11];
涓銆佸父鐢ㄦ寚浠?/span>
1. 閫氱敤鏁版嵁浼犻佹寚浠?/span>.
MOV 浼犻佸瓧鎴栧瓧鑺?/span>.
MOVSX 鍏堢鍙鋒墿灞?/span>,鍐嶄紶閫?/span>.
MOVZX 鍏堥浂鎵╁睍,鍐嶄紶閫?/span>.
PUSH 鎶婂瓧鍘嬪叆鍫嗘爤.
POP 鎶婂瓧寮瑰嚭鍫嗘爤.
PUSHA 鎶?/span>AX,CX,DX,BX,SP,BP,SI,DI渚濇鍘嬪叆鍫嗘爤.
POPA 鎶?/span>DI,SI,BP,SP,BX,DX,CX,AX渚濇寮瑰嚭鍫嗘爤.
PUSHAD 鎶?/span>EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI渚濇鍘嬪叆鍫嗘爤.
POPAD 鎶?/span>EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX渚濇寮瑰嚭鍫嗘爤.
BSWAP 浜ゆ崲32浣嶅瘎瀛樺櫒閲屽瓧鑺傜殑欏哄簭
XCHG 浜ゆ崲瀛楁垨瀛楄妭.( 鑷沖皯鏈変竴涓搷浣滄暟涓哄瘎瀛樺櫒,孌靛瘎瀛樺櫒涓嶅彲浣滀負鎿嶄綔鏁?/span>)
CMPXCHG 姣旇緝騫朵氦鎹㈡搷浣滄暟.( 絎簩涓搷浣滄暟蹇呴』涓虹瘡鍔犲櫒AL/AX/EAX )
XADD 鍏堜氦鎹㈠啀绱姞.( 緇撴灉鍦ㄧ涓涓搷浣滄暟閲?/span> )
XLAT 瀛楄妭鏌ヨ〃杞崲.
BX 鎸囧悜涓寮?/span> 256 瀛楄妭鐨勮〃鐨勮搗鐐?/span>, AL 涓鴻〃鐨勭儲寮曞?/span> (0-255,鍗?/span> 0-FFH); 榪斿洖 AL 涓烘煡琛ㄧ粨鏋?/span>. ( [BX+AL]->
2. 杈撳叆杈撳嚭绔彛浼犻佹寚浠?/span>.
IN I/O绔彛杈撳叆. ( 璇硶: IN 绱姞鍣?/span>, {绔彛鍙封攤DX} )
OUT I/O绔彛杈撳嚭. ( 璇硶: OUT {绔彛鍙封攤DX},绱姞鍣?/span> )
杈撳叆杈撳嚭绔彛鐢辯珛鍗蟲柟寮忔寚瀹氭椂, 鍏惰寖鍥存槸 0-255; 鐢卞瘎瀛樺櫒 DX 鎸囧畾鏃?/span>,鍏惰寖鍥存槸 0-65535.
3. 鐩殑鍦板潃浼犻佹寚浠?/span>.
LEA 瑁呭叆鏈夋晥鍦板潃.
渚?/span>: LEA DX,string ;鎶婂亸縐誨湴鍧瀛樺埌DX.
LDS 浼犻佺洰鏍囨寚閽?/span>,鎶婃寚閽堝唴瀹硅鍏?/span>DS.
渚?/span>: LDS SI,string ;鎶婃鍦板潃:鍋忕Щ鍦板潃瀛樺埌DS:SI.
LES 浼犻佺洰鏍囨寚閽?/span>,鎶婃寚閽堝唴瀹硅鍏?/span>ES.
渚?/span>: LES DI,string ;鎶婃鍦板潃:鍋忕Щ鍦板潃瀛樺埌ESDI.
LFS 浼犻佺洰鏍囨寚閽?/span>,鎶婃寚閽堝唴瀹硅鍏?/span>FS.
渚?/span>: LFS DI,string ;鎶婃鍦板潃:鍋忕Щ鍦板潃瀛樺埌FSD.
LGS 浼犻佺洰鏍囨寚閽?/span>,鎶婃寚閽堝唴瀹硅鍏?/span>GS.
渚?/span>: LGS DI,string ;鎶婃鍦板潃:鍋忕Щ鍦板潃瀛樺埌GSDI.
LSS 浼犻佺洰鏍囨寚閽?/span>,鎶婃寚閽堝唴瀹硅鍏?/span>SS.
渚?/span>: LSS DI,string ;鎶婃鍦板潃:鍋忕Щ鍦板潃瀛樺埌SSDI.
4. 鏍囧織浼犻佹寚浠?/span>.
LAHF 鏍囧織瀵勫瓨鍣ㄤ紶閫?/span>,鎶婃爣蹇楄鍏?/span>AH.
SAHF 鏍囧織瀵勫瓨鍣ㄤ紶閫?/span>,鎶?/span>AH鍐呭瑁呭叆鏍囧織瀵勫瓨鍣?/span>.
PUSHF 鏍囧織鍏ユ爤.
POPF 鏍囧織鍑烘爤.
PUSHD 32浣嶆爣蹇楀叆鏍?/span>.
POPD 32浣嶆爣蹇楀嚭鏍?/span>.
浜屻佺畻鏈繍綆楁寚浠?/span>
ADD 鍔犳硶.
ADC 甯﹁繘浣嶅姞娉?/span>.
INC 鍔?/span> 1.
AAA 鍔犳硶鐨?/span>ASCII鐮佽皟鏁?/span>.
DAA 鍔犳硶鐨勫崄榪涘埗璋冩暣.
SUB 鍑忔硶.
SBB 甯﹀熶綅鍑忔硶.
DEC 鍑?/span> 1.
NEC 姹傚弽(浠?/span> 0 鍑忎箣).
CMP 姣旇緝.(涓ゆ搷浣滄暟浣滃噺娉?/span>,浠呬慨鏀規爣蹇椾綅,涓嶅洖閫佺粨鏋?/span>).
AAS 鍑忔硶鐨?/span>ASCII鐮佽皟鏁?/span>.
DAS 鍑忔硶鐨勫崄榪涘埗璋冩暣.
MUL 鏃犵鍙蜂箻娉?/span>.
IMUL 鏁存暟涔樻硶.
浠ヤ笂涓ゆ潯,緇撴灉鍥為?/span>AH鍜?/span>AL(瀛楄妭榪愮畻),鎴?/span>DX鍜?/span>AX(瀛楄繍綆?/span>),
AAM 涔樻硶鐨?/span>ASCII鐮佽皟鏁?/span>.
DIV 鏃犵鍙烽櫎娉?/span>.
IDIV 鏁存暟闄ゆ硶.
浠ヤ笂涓ゆ潯,緇撴灉鍥為?/span>:
鍟嗗洖閫?/span>AL,浣欐暟鍥為?/span>AH, (瀛楄妭榪愮畻);
鎴?/span> 鍟嗗洖閫?/span>AX,浣欐暟鍥為?/span>DX, (瀛楄繍綆?/span>).
AAD 闄ゆ硶鐨?/span>ASCII鐮佽皟鏁?/span>.
CBW 瀛楄妭杞崲涓哄瓧. (鎶?/span>AL涓瓧鑺傜殑絎﹀彿鎵╁睍鍒?/span>AH涓幓)
CWD 瀛楄漿鎹負鍙屽瓧. (鎶?/span>AX涓殑瀛楃殑絎﹀彿鎵╁睍鍒?/span>DX涓幓)
CWDE 瀛楄漿鎹負鍙屽瓧. (鎶?/span>AX涓殑瀛楃鍙鋒墿灞曞埌EAX涓幓)
CDQ 鍙屽瓧鎵╁睍. (鎶?/span>EAX涓殑瀛楃殑絎﹀彿鎵╁睍鍒?/span>EDX涓幓)
涓夈侀昏緫榪愮畻鎸囦護
AND 涓庤繍綆?/span>.
OR 鎴栬繍綆?/span>.
XOR 寮傛垨榪愮畻.
NOT 鍙栧弽.
TEST 嫻嬭瘯.(涓ゆ搷浣滄暟浣滀笌榪愮畻,浠呬慨鏀規爣蹇椾綅,涓嶅洖閫佺粨鏋?/span>).
SHL 閫昏緫宸︾Щ.
SAL 綆楁湳宸︾Щ.(=SHL)
SHR 閫昏緫鍙崇Щ.
SAR 綆楁湳鍙崇Щ.(=SHR)
ROL 寰幆宸︾Щ.
ROR 寰幆鍙崇Щ.
RCL 閫氳繃榪涗綅鐨勫驚鐜乏縐?/span>.
RCR 閫氳繃榪涗綅鐨勫驚鐜彸縐?/span>.
浠ヤ笂鍏縐諱綅鎸囦護,鍏剁Щ浣嶆鏁板彲杈?/span>255嬈?/span>.
縐諱綅涓嬈℃椂, 鍙洿鎺ョ敤鎿嶄綔鐮?/span>. 濡?/span> SHL AX,1.
縐諱綅>1嬈℃椂, 鍒欑敱瀵勫瓨鍣?/span>CL緇欏嚭縐諱綅嬈℃暟.
濡?/span> MOV CL,04
SHL AX,CL
鍥涖佷覆鎸囦護
DS:SI 婧愪覆孌靛瘎瀛樺櫒 :婧愪覆鍙樺潃.
ES I 鐩爣涓叉瀵勫瓨鍣?/span>:鐩爣涓插彉鍧.
CX 閲嶅嬈℃暟璁℃暟鍣?/span>.
AL/AX 鎵弿鍊?/span>.
D鏍囧織 0琛ㄧず閲嶅鎿嶄綔涓?/span>SI鍜?/span>DI搴旇嚜鍔ㄥ閲?/span>; 1琛ㄧず搴旇嚜鍔ㄥ噺閲?/span>.
Z鏍囧織 鐢ㄦ潵鎺у埗鎵弿鎴栨瘮杈冩搷浣滅殑緇撴潫.
MOVS 涓蹭紶閫?/span>.
( MOVSB 浼犻佸瓧絎?/span>. MOVSW 浼犻佸瓧. MOVSD 浼犻佸弻瀛?/span>. )
CMPS 涓叉瘮杈?/span>.
( CMPSB 姣旇緝瀛楃. CMPSW 姣旇緝瀛?/span>. )
SCAS 涓叉壂鎻?/span>.
鎶?/span>AL鎴?/span>AX鐨勫唴瀹逛笌鐩爣涓蹭綔姣旇緝,姣旇緝緇撴灉鍙嶆槧鍦ㄦ爣蹇椾綅.
LODS 瑁呭叆涓?/span>.
鎶婃簮涓蹭腑鐨勫厓绱?/span>(瀛楁垨瀛楄妭)閫愪竴瑁呭叆AL鎴?/span>AX涓?/span>.
( LODSB 浼犻佸瓧絎?/span>. LODSW 浼犻佸瓧. LODSD 浼犻佸弻瀛?/span>. )
STOS 淇濆瓨涓?/span>.
鏄?/span>LODS鐨勯嗚繃紼?/span>.
REP 褰?/span>CX/ECX<>0鏃墮噸澶?/span>.
REPE/REPZ 褰?/span>ZF=1鎴栨瘮杈冪粨鏋滅浉絳?/span>,涓?/span>CX/ECX<>0鏃墮噸澶?/span>.
REPNE/REPNZ 褰?/span>ZF=0鎴栨瘮杈冪粨鏋滀笉鐩哥瓑,涓?/span>CX/ECX<>0鏃墮噸澶?/span>.
REPC 褰?/span>CF=1涓?/span>CX/ECX<>0鏃墮噸澶?/span>.
REPNC 褰?/span>CF=0涓?/span>CX/ECX<>0鏃墮噸澶?/span>.
浜斻佺▼搴忚漿縐繪寚浠?/span>
1>鏃犳潯浠惰漿縐繪寚浠?/span> (闀胯漿縐?/span>)
JMP 鏃犳潯浠惰漿縐繪寚浠?/span>
CALL 榪囩▼璋冪敤
RET/RETF榪囩▼榪斿洖.
2>鏉′歡杞Щ鎸囦護 (鐭漿縐?/span>,-128鍒?/span>+127鐨勮窛紱誨唴)
( 褰撲笖浠呭綋(SF XOR OF)=1鏃?/span>,OP1<OP2 )
JA/JNBE <
鎶涘紑鍘嬬緝綆楁硶涓嶈皥錛屾垜璁や負zip銆乺ar鍦ㄦ枃浠舵牸寮忎笂鏈澶х殑宸紓灝卞湪鐩綍琛紙Table of Contents錛孴OC錛夛細zip鏈塗OC錛岃宺ar娌℃湁銆?/p>
TOC榪欎釜璇嶅叾瀹炴槸浠庡嚭鐗堢晫鍊熺敤榪囨潵鐨勶紝鎸囩殑灝辨槸姣忎竴鏈功姝f枃鍓嶉潰鐨?#8220;鐩綍”錛屽畠鐨勪綔鐢ㄥ湴鐞冧漢閮界煡閬擄細濡傛灉鎯沖揩閫熸壘鍒頒功涓煇涓鍐呭錛屽彲浠ュ厛鏌OC錛岀劧鍚庢寜鐓OC鎸囨槑鐨勯〉鐮佺洿鎺ョ炕鍗沖彲銆?/p>
鍦ㄧ焊璐ㄤ功閲孴OC鏄嵃鍒峰嚭鏉ョ殑涓寮犺〃錛岃屽湪鐢靛瓙鏂囦歡閲屽垯鏄敱緇撴瀯鍖栨暟鎹瀯鎴愮殑涓寮犺〃錛屽畠鐨勭洰鐨勫悓鏍鋒槸涓轟簡蹇熷畾浣嶏細濡傛灉鎯蟲壘鏂囦歡涓殑鏌愪竴鍐呭錛屽彲浠ュ厛鏌OC錛岀煡閬撴劅鍏磋叮鐨勫唴瀹瑰湪鏂囦歡鐨勪粈涔堜綅緗紝鐩存帴璺寵繃鍘誨氨琛屼簡銆傛渶甯歌鐨勮繍鐢ㄥ氨鏄痑vi銆乺m絳夊濯掍綋鏂囦歡錛氭挱鏀劇殑鏃跺欑粡甯告湁浜哄湪鎾斁鏉′笂鐐規潵鐐瑰幓璺崇潃鐪嬶紙鍗?#8220;闅忔満璁塊棶”錛夛紝濡傛灉娌℃湁TOC錛屽湪闀胯揪鍑犵櫨鍏嗙殑鏂囦歡閲屾潵鍥炲畾浣嶄細鎱㈡銆?/p>
鍏蜂綋鍒皕ip鏂囦歡閲岋紝TOC鏄斁鍦ㄦ枃浠跺熬閮ㄧ殑涓寮犺〃錛岄噷闈㈠垪鍑轟簡zip鍖呬腑姣忎竴涓枃浠剁殑灞炴э紙鏂囦歡鍚嶃侀暱搴︾瓑錛夊拰鍦▃ip鍖呬腑鐨勫瓨鏀句綅緗傚鏋滈渶瑕侀殢鏈鴻闂畓ip鍖呬腑鐨勬煇涓涓枃浠訛紝鍙渶鍦═OC閲屾壘鍒拌繖涓枃浠剁殑瀛樻斁浣嶇疆錛岀洿鎺ヨ煩榪囧幓鍗沖彲銆?/p>
鑰孯AR鏂囦歡閲屽垯娌℃湁TOC錛屽湪鏂囦歡澶翠箣鍚庢墍鏈夋枃浠舵寜欏哄簭榪炵畫瀛樻斁銆?/p>
榪欑宸紓閫犳垚鐨勭粨鏋滃氨鏄細闅忔満璁塊棶鏃秡ip姣攔ar蹇紝鑰岄『搴忚闂椂rar姣攝ip蹇?/p>
鎵璋撻殢鏈鴻闂紝灝辨槸鍓嶉潰璇磋繃鐨勯殢鏈鴻闂帇緙╁寘涓煇涓寚瀹氱殑鏂囦歡銆備婦涓涓畝鍗曠殑渚嬪瓙錛氫竴鏈弽緙栬瘧鎴栦笅杞藉埌鐨勭綉欏電數瀛愪功錛屾湁澶ч噺HTML銆佸浘鍍忋乧ss銆乯s錛岀劧鍚庢墦鎴愬帇緙╁寘銆傜幇鍦ㄨ姹傚湪涓嶈В鍖呯殑鎯呭喌涓嬭闂叾涓殑欏甸潰錛氬彲浠ユ兂璞★紝鎵撳紑姣忎釜HTML欏甸潰鐨勬椂鍊欙紝瀹冩墍闄勫甫鐨勫浘鍍忋乧ss銆乯s絳夋枃浠跺彲鑳介殢鏈哄垎甯冨湪鏁翠釜鍘嬬緝鍖呴噷錛屽鏋滄病鏈塗OC錛屾煡鎵炬瘡涓枃浠剁殑鏃跺欓兘瑕佷粠澶村紑濮嬫壘錛屽皢浼氭湁澶氭參銆?鎵浠ュ悇浣嶅彲浠ョ悊瑙d負浠涔坖ar鍖呭氨鏄爣鍑唞ip鍖咃紝鑰屾垜涔熷彧鐢▃ip鏍煎紡淇濆瓨鍙嶇紪璇戝嚭鏉ョ殑鐢靛瓙涔︺佹極鐢匯丳DG涔︾瓑涓鍒囧彲鑳介渶瑕侀殢鏈鴻闂殑涓滆タ銆?/p>
鎵璋撻『搴忚闂紝灝辨槸灝嗘暣涓帇緙╁寘浠庡ご瑙e埌灝俱傚湪榪欐柟闈AR鍏鋒湁澶╃劧鐨勪紭鍔褲傝屼笖涓轟簡鑺傜渷WinRAR鍒楁枃浠剁殑鏃墮棿錛屽浜庡崟涓猂AR鎴戜竴鑸兘鐩存帴閫氳繃鍙抽敭鑿滃崟瑙e帇緙╋紝寰堝皯鍙屽嚮鍘嬬緝鍖呮墦寮鍐嶈В鍘嬨傝В澶氫釜RAR鏃跺綋鐒墮兘鐢˙atchUnRar銆?/p>
鐢變簬rar鐨勫師浣滆呭凡緇忓幓涓栵紝閫犳垚榪欑宸紓鐨勭‘鍒囧師鍥犳垜鐩鎬俊宸蹭笉鍙冿紝浣嗘垜涓漢鐚滄祴鍙兘涓嶥OS鏃朵唬鐨勫浠借蔣浠朵箣浜夋湁鍏籌細鍦―OS鏃朵唬錛岀數鑴戠‖鐩樹笉鍍忕幇鍦ㄨ繖鏍峰ア渚堬紝20MB灝辯畻寰堝ぇ浜嗐傝繖鏍風殑瀹歸噺鐢ㄤ袱鐩掕蔣鐩?鍗沖彲澶囦喚錛屽浠芥垚鏈浉瀵規暟鎹湰韜殑浠峰兼潵璇撮潪甯鎬綆寤夈傚洜姝ゅ湪DOS鏃朵唬錛屽緢澶氬叕鍙稿拰鏈烘瀯閮藉埗瀹氭湁瀹氭湡紜洏澶囦喚鏀跨瓥錛屼互鍏嶅洜涓轟漢涓烘垨闈炰漢涓虹殑鍥犵礌 錛堟棭鏈熺‖鐩樺彲娌℃湁濡備粖鍙潬錛夎岄犳垚涓嶅彲鎸藉洖鐨勬暟鎹崯澶便傚湪澶囦喚杞歡鏂歸潰錛岃櫧鐒跺井杞凡緇忛殢DOS鎻愪緵浜咮ackup/Restore宸ュ叿錛屼絾鏄粬浠熀鏈笉鍏峰鏁版嵁鍘嬬緝鑳藉姏錛屽洜姝ゅ湪鍘嬬緝杞歡涓彁渚涘浠藉姛鑳斤紝灝辨垚涓篋OS鏃朵唬鐨勪竴涓椂灝氥傜敱浜嶥OS鏃朵唬鐨勫浠戒粙璐ㄥ涓鴻蔣鐩橈紝鍥犳鍘嬬緝 杞歡鐨勫浠藉姛鑳藉叾瀹炲氨杞寲鎴愬浠婂緢甯歌鐨勪竴涓姛鑳斤細鍒嗗嵎鍘嬬緝鍔熻兘錛屽嵆鎸夌収杞洏瀹歸噺榪涜鍒嗗嵎鍘嬬緝錛岀劧鍚庡皢鍒嗗嵎鍘嬬緝鏂囦歡澶囦喚錛圔ackup錛夊埌杞洏錛岄渶瑕佺殑鏃跺欏啀瑙e帇錛屾垨鎭㈠錛圧estore錛夊埌紜洏銆?/p>
DOS鏃朵唬鏈鏈夊悕鐨剒ip宸ュ叿鏄痯kzip錛屽嚭鐜板緱姣擠OS鐗堢殑RAR鏃┿傚湪鍒嗗嵎鍘嬬緝鏃訛紝pkzip鎸夌収zip鏂囦歡瑙勮寖錛屽皢TOC瀛樻斁鍦ㄦ渶鍚庯紝鍗沖瓨鍌ㄥ湪鏈鍚庝竴鍗鳳紝鐢辨甯︽潵濡備笅闂錛?/p>
1銆佹仮澶嶆椂錛屾瘡瑙e帇涓寮犵洏錛岄兘瑕佸厛灝嗘渶鍚庝竴寮犵洏鎻掕繘鍘諱竴嬈★紝璇諱竴嬈OC銆?br>2銆佸彧瑕佹渶鍚庝竴寮犵洏涓婄殑TOC鍧忎簡錛屽氨綆楀叾瀹冪洏閮芥槸濂界殑錛屼篃涓嶈兘姝e父瑙e帇銆?/p>
榪欎袱涓己鐐癸紝灝ゅ叾鏄涓涓己鐐瑰疄鍦ㄦ槸澶嚟鍚嶆槶钁椾簡錛屽洜姝ゅ綋鏃跺嚭鐜頒簡闈炲父寮虹儓鐨勬敼闈╁懠澹般傚湪榪欎釜鍏抽敭鏃跺埢錛孌OS鐗堢殑RAR鍑虹幇浜嗭細涓嶄粎鍘嬬緝鐜囨瘮pkzip楂橈紙榪欑偣鍦―OS鏃朵唬闈炲父閲嶈錛屾瘯绔熻蔣鐩樺張璐靛閲忓張灝忥級錛岃屼笖鐢變簬鍚稿彇浜嗗綋鏃跺zip鏍煎紡鐨勬壒璇勶紝鍙栨秷浜員OC錛屽洜姝わ細
1銆佸湪鎭㈠鍒嗗嵎鍘嬬緝鐨勫浠芥枃浠舵椂錛屼笉闇瑕侀綣佹彃鍏ュ甫鏈塗OC鐨勫垎鍗鳳紝鎸夐『搴忔崲鐩樺嵆鍙?br>2銆佸嵆浣挎煇涓垎鍗鋒崯鍧忥紝涔熷彲浠ヨ煩榪囷紝浠庡畬濂界殑鍒嗗嵎鍐嶅紑濮嬭В鍘嬨?/p>
鐢變簬榪欎簺鍘熷洜錛堝綋鐒惰繕鏈夊叾瀹冨師鍥狅級錛孯AR鎺ㄥ嚭鍚庤繀閫熷彇寰椾簡鎴愬姛錛宲kzip鍦―OS鏃朵唬灝卞紑濮嬫祦澶辯敤鎴鳳紝鍒癢indows鏃朵唬鍩烘湰娑堝0鍖胯抗銆傚湪Windows鏃朵唬鎺ㄥ嚭鐨刉inzip錛屽垯褰誨簳鏀懼純浜嗗垎鍗峰帇緙╁姛鑳斤紙zip鏍煎紡姘歌繙鐨勭棝錛燂級銆?鑰屼粠鎴戠湅鍒扮殑婧愯嚜WinRAR鐨?a target=_blank>UnRAR婧愪唬鐮?/font>鏉ョ湅錛岀幇鍦╓inRAR鐨勮В鍘嬫濊礬鏄庢樉榪樻槸鎶婃枃浠舵寜欏哄簭浠庡ご瑙e埌灝撅紝鐪嬫潵褰撳勾澶囦喚/鎭㈠宸ュ叿涔嬩簤鐨勫獎鍝嶏紝榪樼湡鏄繁榪溿?/p>
鍦ㄥ帇緙╃畻娉曟柟闈紝鎴戣寰梤ar鏍煎紡鏈鐗硅壊鐨勬槸鍥哄疄錛坰olid錛夊帇緙╂柟寮忋俉inRAR v3.42鐨勫府鍔╂枃浠朵腑瀵瑰浐瀹炲帇緙╃殑璇存槑濡備笅錛?br> 涓句竴涓畝鍗曠殑渚嬪瓙錛氱敤zip鍜屾櫘閫歳ar鍘嬬緝涓鍫唈pg鏂囦歡錛屽緢闅懼帇涓嬪幓錛屼絾鏄敤鍥哄疄鍘嬬緝鏂瑰紡鐨剅ar灝卞彲浠ワ紝鍏跺師鍥犲氨鍦ㄤ簬錛歫pg鏂囦歡鏈韓宸茬粡鏄帇緙╂牸寮忎簡錛屽崟涓猨pg鏂囦歡閲屽緢闅懼啀 鎵懼埌鍙埄鐢ㄧ殑閲嶅鏁版嵁錛屽洜姝や笉璁烘槸鐢▃ip榪樻槸鏅氱殑rar閮藉緢闅懼啀鍘嬬緝錛屽洜涓轟粬浠兘灝嗛渶瑕佸帇緙╃殑鏂囦歡鍒嗛殧寮鏉ヤ竴涓竴涓鐞嗐備絾鏄浜庡浐瀹瀝ar鏉ヨ錛屾槸灝?鎵鏈夐渶瑕佸帇緙╃殑jpg鏂囦歡褰撲綔涓涓暣浣撴潵鍘嬬緝錛岃繖浜沯pg涔嬮棿灝卞瓨鍦ㄩ噸澶嶇殑鏁版嵁錛屽浠栦滑閮芥湁鐩稿悓鐨勬枃浠跺ご錛堝叾涓寘鎷悇縐嶆暟鎹〃錛夌瓑錛岃繖灝卞嚭鐜頒簡鍙帇緙╃殑絀洪棿銆備粠鎴戠湅鍒扮殑璧勬枡鏉ョ湅錛孎lash鏂囦歡涔熼噰鐢ㄤ簡綾諱技鐨勬妧鏈jpg榪涜鍘嬬緝錛氬鏋滃湪Flash鏂囦歡涓嬌鐢ㄤ簡澶氫釜jpg鏂囦歡錛屽畠浠彲浠ュ叡鐢ㄤ竴涓枃浠跺ご銆?br> 鍥哄疄鍘嬬緝鍙鍔犲帇緙╂ц兘錛岀壒鍒槸鍦ㄦ坊鍔犲ぇ閲忕殑灝忔枃浠剁殑鏃跺欙紝浣嗗畠涔熸湁涓浜涢噸瑕佺殑涓嶅埄鍥犵礌: 鍥哄疄鍘嬬緝鐨勯傜敤鍦哄悎涓? 涓庡墠闈㈣鐨?#8220;闅忔満璁塊棶”瀵瑰簲錛屽浐瀹炲帇緙╃殑RAR鏂囦歡鍙兘鏄笘鐣屼笂鏈涓嶉傚悎闅忔満璁塊棶鐨勶細濡傛灉闇瑕佽闂浐瀹濺AR鍖呬腑鐨勬煇涓枃浠訛紝灝辮浠庢枃浠跺ご寮濮嬭В鍘嬶紝涓鐩磋В鍒拌繖涓枃浠躲?/p>
榪欓噷鐨勫畨鍏ㄦу寘鍚嚑涓柟闈㈢殑鍚箟錛氭枃浠剁郴緇熷畨鍏ㄦс佸瘑鐮佷繚鎶ゅ畨鍏ㄦу拰鏂囦歡鏁版嵁瀹夊叏鎬с?/p>
鐢變簬鍒惰zip鏍煎紡瑙勮寖鐨勬椂鍊欐搷浣滅郴緇熸湰韜殑鏂囦歡瀹夊叏鎬ц繕娌℃湁寮曡搗瓚沖鐨勯噸瑙嗭紝鍥犳zip鏍煎紡鍙褰曟渶鍩烘湰鐨勬枃浠跺睘鎬э紝鍖呮嫭鍙灞炴х瓑錛屾病鏈夊叾瀹冮檮鍔犵殑瀹夊叏灞炴с?/p>
rar鏍煎紡鍒氭帹鍑虹殑鏃跺欙紝鏂囦歡緋葷粺鐨勫畨鍏ㄦу彧鑳藉弬鐓OS錛屽拰zip宸笉澶氥備絾鏄痳ar姣曠珶鏄竴縐嶅皝闂殑鏍煎紡錛屾兂鎬庝箞鏀逛綔鑰呬竴涓漢璇翠簡灝辯畻錛屽洜姝ゅ綋Windows涓嚭鐜癗TFS錛屽茍涓斿紩鍏ユ墿灞曠殑鏂囦歡緋葷粺瀹夊叏灞炴ф椂錛宺ar涔熺Н鏋佽窡榪涳紝鎵浠ョ幇鍦ㄥ簲璇ヨrar鏍煎紡鍦ㄨ繖鏂歸潰姣攝ip寮?銆?/p>
鍦▃ip鍜宺ar鏍煎紡涓潎鎻愪緵浜嗗瘑鐮佷繚鎶ゅ姛鑳斤紝浣嗘槸瀵嗙爜淇濇姢鐨勫畨鍏ㄥ己搴︿笉鍚屻?/p>
zip鐢變簬鏍煎紡寮鏀俱佷唬鐮佸紑婧愶紝鍥犳zip瀵嗙爜鐮磋В杞歡鍑虹幇寰楁瘮杈冩棭錛屼篃姣旇緝澶氥傚垵鏈熶互鏆村姏鐮磋В涓轟富錛屽▉鑳佷笉澶э紝鐪熸瀵箊ip瀵嗙爜瀹夊叏鐨勮嚧鍛戒竴鍑繪槸known plain text錛堝凡鐭ユ槑鏂囷級鏀誨嚮娉曪細濡傛灉鐭ラ亾鍔犲瘑zip鏂囦歡涓煇孌靛唴瀹癸紙瀵嗘枃錛宑iphertext錛夎В瀵嗗悗鐨勭湡姝e唴瀹癸紙鏄庢枃錛宲lain text錛夛紝灝卞彲浠ュ弽鎺ㄥ嚭zip鍔犲瘑鍙d護銆傚湪榪欑鏀誨嚮鏂規硶鐨勫▉鑳侊紝鍙婃煇浜涘浗瀹剁殑娉曞緥瀵瑰瘑鐮佹妧鏈殑闄愬埗涓嬶紝 钁楀悕寮婧愮粍緇?a target=_blank>zlib瀹e竷姘鎬箙鏀懼純瀵瑰姞瀵唞ip鐨勬敮鎸侊紝璇﹁zlib緗戠珯涓婄殑鐩稿叧璇存槑錛堜笉榪囧湪zlib鍙戣鐨勬簮浠g爜閲屼粩緇嗘壘鎵撅紝榪樻槸鑳芥壘鍒板師鏉ョ殑鍔?瑙e瘑鐩稿叧浠g爜錛夈?/p>
璁板緱rar鍒氭帹鍑虹殑鏃跺欎篃鍜寊ip涓鏍鳳紝铏界劧涓嶈兘鍒楀嚭鍔犲瘑鏂囦歡涓殑鏂囦歡鍐呭錛屼絾鍙互鍒楀嚭鍔犲瘑鏂囦歡涓殑鏂囦歡鍚嶃傚悗鏉ュぇ姒備篃鏄known plain text鏀誨嚮娉曞悡鍒頒簡錛屽鍔犱簡涓涓?#8220;鍔犲瘑鏂囦歡鍚?#8221;閫夐」錛屽共鑴嗚繛鍔犲瘑rar鏂囦歡閲屾湁鍝簺鏂囦歡閮界湅涓嶈錛岃鏀誨嚮鑰呮兂鐚滄槑鏂囬兘鏃犱粠鐚滆搗銆?/p>
rar鏍煎紡姣攝ip鏅氭帹鍑猴紝鍦ㄥ畨鍏ㄦ柟闈㈠惛鍙栦簡瓚沖鐨勬暀璁紝鍥犳閲囩敤鐨勬槸緹庡浗鍥藉鏍囧噯涓庢妧鏈眬錛圢ational Institute of Standard and Technology, NIST錛夋帹鑽愮殑銆佺洰鍓嶅叕璁ゅ畨鍏ㄧ▼搴︽瘮杈冮珮鐨凙ES瀵圭О鍔犲瘑綆楁硶 錛屽瘑閽ラ暱搴?28浣嶃傚湪ASE琚敾鐮翠互鍓嶏紙NIST璁や負30騫村唴鏃犳硶鏀葷牬錛夛紝澶у閮藉彧鑳藉湪鏆村姏娉曚笂鍏滃湀瀛愶紝鎵浠ュ瘑鐮佸畨鍏ㄦу簲璇ヨ姣攝ip楂樸傚姝inRAR 3.42鐨勫府鍔╂枃浠舵槸榪欐牱鎻忚堪鐨勶細 ZIP 鏍煎紡浣跨敤縐佹湁鍔犲瘑綆楁硶銆?RAR 鍘嬬緝鏂囦歡浣跨敤鏇村己澶х殑 AES-128 鏍囧噯鍔犲瘑銆傚鏋滀綘闇瑕佸姞瀵嗛噸瑕佺殑淇℃伅錛岄夋嫨 RAR 鍘嬬緝鏂囦歡鏍煎紡浼氭瘮杈冨ソ涓浜涖備負浜嗙‘瀹炵殑瀹夊叏鎬э紝瀵嗙爜闀垮害璇鋒渶灝戣 8 涓瓧絎︺備笉瑕佷嬌鐢ㄤ換浣曡璦鐨勫崟璇嶄綔涓哄瘑鐮侊紝鏈濂芥槸浠繪剰鐨勯殢鏈虹粍鍚堝瓧絎﹀拰鏁板瓧錛屽茍涓旇娉ㄦ剰瀵嗙爜鐨勫ぇ灝忓啓銆傝璁頒綇錛屽鏋滀綘閬楀け浣犵殑瀵嗙爜錛屼綘灝嗘棤娉曞彇鍑哄姞瀵嗙殑鏂囦歡錛屽氨綆楁槸 WinRAR 鐨勪綔鑰呮湰韜篃鏃犳硶瑙e帇鍔犲瘑榪囩殑鏂囦歡銆?/strong> 鍦ㄦ暟鎹畨鍏ㄦф柟闈紝RAR鏍煎紡鏈韓鏀寔涓縐嶇壒孌婄殑闄勫姞淇℃伅綾誨瀷錛屽彨鍋?#8220;鎭㈠璁板綍”銆傚鏋淩AR鏂囦歡鏈夋仮澶嶈褰曪紝鍦ㄤ粙璐ㄧ墿鐞嗘崯鍧忔垨鍏跺畠鍘熷洜閫犳垚鏁版嵁涓㈠け鏃訛紝WinRAR鍙互鎸夌収“鎭㈠璁板綍”灝濊瘯瀵規暟鎹繘琛屼慨澶嶃傝寊ip鏍煎紡鏃犳仮澶嶈褰曪紝鍥犳鍦ㄦ暟鎹畨鍏ㄦф柟闈㈠簲璇ヨ姣擱AR寮便?/p>
铏界劧RAR鏂囦歡鏈韓鏀寔鎭㈠璁板綍錛屼絾鏄湪WinRAR閲屾閫夐」緙虹渷鏄叧闂殑錛岃屾墦寮鍚庝細瀵艱嚧鍘嬬緝鍑烘潵鐨凴AR鏂囦歡浣撶Н澧炲姞錛堝鍔犵殑鐧懼垎姣斾笌璁劇疆鏈夊叧錛夛紝鍙兘浼氫護鏌愪簺浜烘劅鍒頒笉涔犳儻錛堟垜灝變翰鐪艱鍒版湁浜哄湪璁哄潧涓婃姳鎬ㄤ負浠涔堝帇鍑烘潵鐨凴AR鏂囦歡浼氬姝ゅ簽澶э級錛屾墍浠ヨ繖涓姛鑳藉熀鏈笂褰㈠悓铏氳銆?/p>
寮鏀炬х殑瀵規瘮寰堟槑鏄撅細zip鏍煎紡涓嶄粎鏂囦歡鏍煎紡瀹屽叏鍏紑錛岃屼笖鏈変笓闂ㄧ殑寮婧愮粍緇囨彁渚涙搷浣滄簮浠g爜錛岃法騫沖彴浣跨敤涔熸病鏈夊澶ч檺鍒訛紱rar鏍煎紡瀹屽叏淇濆瘑錛屼綔鑰呭彧鎻愪緵瑙e帇鎵闇婧愪唬鐮侊紝涓嶆彁渚涘帇緙╂墍闇婧愪唬鐮?錛岃法騫沖彴浣跨敤鏈夌偣楹葷儲銆?/p>
zip寮婧愮粍緇囦腑錛屾渶鍑哄悕鐨勬槸zlib鍜?a target=_blank>InfoZip錛屼簩鑰呭悇鏈変晶閲嶏細zlib鍋忛噸瀵瑰唴瀛樼紦鍐插尯鐨勫帇緙╋紝鍥犳琚?a target=_blank>png絳夊紑婧愮粍緇囩敤鍋氬唴閮ㄥ帇緙╃畻娉曪紝榪瀓ava鐨刯ar紼嬪簭鍐呮牳閮芥潵鑷獄lib錛屾墦鍑烘潵鐨刯ar鍖呰嚜鐒朵篃鏄竴涓爣鍑嗙殑zip鏂囦歡錛汭nfoZip鍋忛噸瀵規枃浠剁殑鎿嶄綔 錛堝寘鎷彛浠や繚鎶わ級錛屽簲鐢ㄤ技涔庝笉濡倆lib騫挎硾錛屼絾鎴戜釜浜鴻寰楀叾瀹炲畠榪樻槸婊″ソ鐢ㄧ殑錛屽墠鎻愭槸闇瑕佸瀹冪殑婧愪唬鐮佽繘琛屼竴浜涘繀瑕佺殑淇敼銆?/p>
鍦?a target=_blank>png緇勭粐鐨勭綉欏典腑鏈夎鍒皃ng鏍煎紡鐨勬潵鍘嗭紝鎴戣寰椾篃寰堟湁鎰忔濓細鍋歱ng鐨勪竴鐝漢錛屽叾瀹炲師鏉ラ兘鏄仛gif鏍煎紡鐨勶紝浣嗘槸鐢變簬Unisys鍏徃寮濮嬪gif鏍煎紡鐨勬牳蹇冣斺擫ZW鍘嬬緝綆楁硶寰佹敹涓撳埄璐癸紝榪欏府浜烘掍簡錛屽共鑴嗘彁鍑簆ng鏍煎紡錛氬ぇ緇撴瀯鏂歸潰榪樻槸閲囩敤鍒嗘緇撴瀯錛屼絾鏄牳蹇冨帇緙╃畻娉曢噰鐢ㄥ紑婧愮殑zlib錛屽帇緙?鏁堟灉鍦ㄥ鏁版儏鍐典笅姣攇if鐨凩ZW鏇村己銆傜敱浜庢病鏈夌増鏉冮檺鍒訛紝鍦ㄩ潤鎬佸浘褰㈤鍩焢ng寰楀埌騫挎硾搴旂敤錛屽鏋滀笉鏄強鏃舵彁鍑哄姩鐢繪敮鎸佸茍鍥犳鍦╳eb涓婂ぇ琛屽叾閬擄紝鎴戜及璁if鏃╁氨姝繪帀浜嗐?/p>
RAR鐨勮В鍘嬫簮浠g爜鍦ㄥ叾瀹樻柟緗戠珯www.rarlab.com涓婃彁渚涳紝閫氬父姣擶inRAR鐨勬寮忕増鏈櫄涓鐐癸紝涓嶈繃鎹鏄洿鎺ヤ粠WinRAR鐨勬簮浠g爜涓姞鍑烘潵鐨勶紝鎵浠ュ吋瀹規у簲璇ユ病鏈変粈涔堥棶棰樸?/p>
浠ヤ笅瑙傜偣綰睘涓漢瑙傜偣錛屼粎渚涘弬鑰冿紝涓嶅叿鏈夊浣曟寚瀵兼剰涔夛細
鍥哄疄鍘嬬緝鏂囦歡鏄?RAR 鐨勪竴縐嶇壒孌婂帇緙╂柟寮忓瓨鍌ㄧ殑鍘嬬緝鏂囦歡錛屽畠鎶婂帇緙╂枃浠朵腑鐨勫叏閮ㄦ枃浠墮兘褰撴垚涓涓繛緇暟鎹祦鏉ョ湅寰呫?/strong>
榪欐璇存槑鍏跺疄鎻ず浜嗗浐瀹炲帇緙╂牸寮忚兘澶熸彁楂樺帇緙╂瘮鐨勫ゥ縐橈細鏁版嵁鍘嬬緝鐨勫熀紜鏄?#8220;閲嶅”錛屼緥濡俛aaabbb榪欎釜瀛楃涓詫紝閲岄潰灝辨湁閲嶅錛屽鏋滆〃紺轟負a4b3錛岀湅璧鋒潵鏄笉鏄彉鐭簡錛熻繖灝辨槸“鏁版嵁鍘嬬緝”銆?#8220;閲嶅”鏄竴涓叿鏈夌浉瀵規剰涔夌殑姒傚康錛屽湪鏌愪竴鑼冨洿鍐呯湅璧鋒潵娌℃湁閲嶅錛屾垨閲嶅涓嶅鐨勬暟鎹紝鎶婅寖鍥存墿澶э紝璇翠笉瀹氬氨鑳芥壘鍒版洿澶氶噸澶嶇殑鏁版嵁浜嗭紝榪欏氨鏄浐瀹炲帇緙╃殑濂ョ銆?/p>
褰撶劧澶╀笅涓嶄細鏈夌櫧鍚冪殑鍗堥錛屽浐瀹炲帇緙╂柟寮忓湪鎻愰珮鍘嬬緝姣旂殑鍚屾椂錛屼篃鏈変竴浜涢檺鍒訛紝鍦╓inRAR v3.42甯姪鏂囦歡涓殑璇存硶鏄細
]]>
杈撳叆鍊鹼細abc鍚庨潰璺熶釜鍥炶濺
鏈互涓哄睆騫曞簲璇ユ樉紺?br>a
a
b
b
c
c
瀹為檯涓婃槸:
abc
abc
榪欐槸鍥犱負鍙湁褰撹緭鍏ュ洖杞︽椂錛岀郴緇熸墠璁や負鏄緭鍏ュ畬姣?br>
2.涓婇潰鐨勪唬鐮佽繕鏈変竴涓棶棰?br>鍥犱負EOF鏄?1錛屾墍浠=getchar()榪欎竴鍙ヤ細鍑虹幇闂
鎵浠搴旇鏄痠nt c
浜屻丒OF
鍙湁鍦ㄦ柊鐨勪竴琛岃緭鍏ョ殑鏃跺欒緭鍏OF鎵嶇畻鏄枃浠剁粨鏉熺
鍋囪杈撳叆錛?br>abc^zqwer
杈撳嚭涓猴細
abc