锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
Tuesday, December 18, 2007
娉細杞創(chuàng)鏂囩珷錛岀増鏉冨綊鍘熶綔鑰呮墍鏈夈?br>
鏈榪戜竴孌墊椂闂達紝縐誨姩璁懼寮鍙戣秺鏉ヨ秺澶氱殑鎴愪負浜嗙▼搴忓憳紺懼尯鐨勮瘽棰樸傜Щ鍔ㄨ澶囦富瑕佸寘鎷櫤鑳芥墜鏈哄拰PDA錛屾槸宓屽叆寮忓紑鍙戜腑寰堥噸瑕佺殑涓涓柟鍚戙傚湪鏅鴻兘鎵嬫満棰嗗煙琚ぇ澶氭暟鎵嬫満鍘傚晢鏀寔鐨凧2ME鏃犵枒鏄澶寸緤錛屽井杞疌E騫沖彴鐨凷martPhone涔熼愭笎鎴愪負鍏蟲敞鐒︾偣銆備竴鐩翠笉娓╀笉鐏殑PDA甯傚満錛屼篃鍦ㄨ涓氬簲鐢ㄩ鍩熸湁鎵鏀惰幏錛孭ocket PC鐢變簬鍏跺紑鍙戜笌Windows騫沖彴鐨勪竴鑷存ц屽緱鍒頒簡寮鍙戜漢鍛樼殑闈掔潗銆?nbsp;
鍦ㄩ暱鏈熷叧娉ㄧ▼搴忓憳璁哄潧鐨勮繃紼嬩腑錛屾垜鍙戠幇鐢變簬Windows CE寮鍙戠殑鐙壒鎬э紝鍔犱箣澶氫釜鐗堟湰騫跺瓨銆佺己涔忎腑鏂囧弬鑰冭祫鏂欙紝鎵浠ヨ鍧涗笂鍏呮枼鐫澶ч噺鐩稿悓鐨勫叆闂ㄩ棶棰樸傛垜甯屾湜鍦ㄨ繖閲岃兘澶熶負鍒氳漿鍏indows CE寮鍙戠殑紼嬪簭鍛樻槑鏅頒竴浜涙蹇碉紝灝嗙幇鏈夌殑Windows CE鐗堟湰涓庡紑鍙戝伐鍏蜂箣闂寸殑鍏崇郴緇欏ぇ瀹惰В閲婃竻妤氥?br>
1. Windows CE涓庡鉤鍙板紑鍙?br>
銆銆Windows CE鏄井杞負宓屽叆寮忚澶囨墦閫犵殑鎿嶄綔緋葷粺錛岃屽祵鍏ュ紡璁懼鍙皳澶氱澶氭牱錛岃繖灝辮姹侰E鎿嶄綔緋葷粺蹇呴』鏄彲瀹氬埗鐨勶紝鎵浠ュ井杞皢Windows CE璁捐涓烘ā鍧楀寲鐨勬搷浣滅郴緇熴傝綆鍗曠偣錛屾垜浠彲浠ユ妸Windows CE鎯沖儚鎴愪竴鐩掔Н鏈紝浣犲彲浠ョ敤縐湪鎼緩鍑轟換浣曠墿浣擄紝浣嗕笉涓瀹氳鎶婃墍鏈夌殑縐湪閮界敤涓娿?br>
銆銆Windows CE鎼緩鍑烘潵鐨勭墿浣撳氨鏄鉤鍙幫紝鏄傚簲鏌愮鏈夊浐瀹氭爣鍑嗙殑宓屽叆寮忚澶囩殑鎿嶄綔緋葷粺瀛愰泦錛屾渶钁楀悕鐨勫鉤鍙板氨鏄疨ocket PC浜嗭紝鏄彁渚涚粰娌℃湁閿洏鐨勬帉涓婄數(shù)鑴戜嬌鐢ㄧ殑騫沖彴銆傜敱浜庡鉤鍙板拰紜歡鐨勪竴鑷存э紝鎵浠ユ湁鏃跺欐垜浠篃鐢ㄥ鉤鍙扮殑鍚嶇О鏉ョО鍛兼暣涓郴緇熲斺旂‖浠朵笌鎿嶄綔緋葷粺鐨勬誨拰銆?br>
銆銆鎴戜滑涔熷彲浠ヨ嚜宸卞紑鍙戝鉤鍙幫紝寮鍙戝伐鍏鋒槸寰蔣鎻愪緵鐨凱latform Builder錛孭latform Builder鐨勭増鏈彿鏄拰Windows CE鐨勭増鏈彿涓鑷寸殑銆?br>
銆銆鏇村紼嬪簭鍛樺叧蹇冪殑鏄簲鐢ㄧ▼搴忕殑寮鍙戯紝鑰屽簲鐢ㄧ▼搴忓紑鍙戞槸閽堝鐗瑰畾騫沖彴鐨勶紝鎴戜滑鍦ㄥ紑鍙戜箣鍓嶅繀欏誨畨瑁呯洰鏍囧鉤鍙扮殑SDK錛屾墠鑳藉寮鍙戝嚭閫傚簲鐩爣騫沖彴鐨勫紑鍙戝伐鍏楓?br>
銆銆Windows CE寮鍙戠幆澧冪患榪?br>
銆銆鍒濆鑰呭彟澶栦竴涓瘮杈冪硦娑傜殑姒傚康鏄増鏈殑闂錛岀幇鍦ㄥ競闈笂鑳藉瑙佸埌Windows CE鐨勪袱浠d駭鍝侊紝瀹冧滑鐨勫唴鏍稿垎鍒熀浜嶹indows CE 3.0鍜學indows CE.NET錛堝嵆4.0錛夈?br>
銆銆寰蔣灝嗕粖騫村垰闈笘鐨凱ocket PC 2003鍜孲mart Phone 2003緇熺О涓篧indows Mobile 2003錛屾垜浠ぇ澶氭暟鏃跺欒繕鏄範鎯湴娌跨敤鑰佺О璋撱?br>
銆銆鑰屽競闈笂緇忓父瑙佸埌鐨凱ocket PC 2002鏄熀浜嶹indows CE 3.0鐨勫鉤鍙幫紝鑰孭ocket PC 2003鍒欐槸鍩轟簬Windows CE.NET鐨勫鉤鍙幫紝闇瑕佹敞鎰忕殑鏄紝Pocket PC 2003鐨勫唴鏍告槸Windows CE.NET 4.2銆傝孲martPhone2003涔熸槸鍩轟簬Windows CE.NET鐨勩係martPhone鐨勬渶鍒濈増鏈槸2002錛屽熀浜嶹indows CE 3.0鐨勶紝浣嗘槸寰蔣娌℃湁鎺ㄥ嚭SmartPhone2002鐨勪腑鏂囩増銆?br>
銆銆娓呮櫚浜嗗鉤鍙頒笌CE涔嬮棿鐨勫叧緋伙紝瑙i噴騫沖彴涓庡紑鍙戝伐鍏蜂箣闂寸殑鍏崇郴灝卞緢瀹規(guī)槗浜嗐傚井杞彁渚涚粰搴旂敤紼嬪簭寮鍙戣呯殑宸ュ叿鍖呮嫭錛欵mbedded Visual Tools 3.0錛屽叾涓寘鎷珽mbedded Visual C++ 3.0鍜孍mbedded Visual Basic 3.0錛汦mbedded Visual C++ 4.0鍜孷isual Studio.NET銆?br>
銆銆寮鍙戝伐鍏風殑鐗堟湰鍙鋒槸涓嶹indows CE鐨勭増鏈彿瀵瑰簲鐨勩侲VC3.0鍜孍VB3.0鏄敤鏉ュ紑鍙戝熀浜嶹indows CE 3.0騫沖彴鐨勫簲鐢ㄧ▼搴忕殑錛屾瘮杈冨父瑙佺殑騫沖彴鏈夛細Pocket PC 2002銆丳ocket PC 2000銆丳alm-size PC銆丠PC銆傝孍VC4.0鏄敤鏉ュ紑鍙慦indows CE.NET騫沖彴鐨勭▼搴忕殑錛屼富瑕佸寘鎷琍ocket PC 2003鍜孲martPhone 2003銆?br>
銆銆Visual Studio.NET閽堝宓屽叆寮忚澶囧紑鍙戦渶瑕丼DE鐨勬敮鎸侊紝鑰孷S.NET 2003涓寘鎷簡SDE錛屼笉闇瑕佸彟澶栧畨瑁呫俈isual Studio.NET寮鍙戠殑紼嬪簭闇瑕佺洰鏍囧鉤鍙版敮鎸?NET Compact Framework銆傜幇鍦ㄦ敮鎸?NET Compact Framework鐨勫鉤鍙版湁Pocket PC 2002鍜孭ocket PC 2003銆傝繖閲岄渶瑕佹敞鎰忕殑鏄疭martPhone 2003鏄笉鏀寔.NET Compact Framework鐨勩?br>2. EVB/EVC寮鍙戝叆闂?br>銆銆
銆銆 EVB寮鍙戝叆闂?br>銆銆
銆銆銆銆寰蔣宸茬粡瀹e竷EVB涓嶅啀鏀寔Windows CE.NET錛屾墍浠VB鐨勬渶緇堢増鏈槸3.0銆備絾鐢變簬EVB鐨勬槗涓婃墜鎬у拰蹇熷紑鍙戠殑鐗圭偣錛屽湪VS.NET妯┖鍑轟笘涔嬪墠錛屽畠鎴愪負Windows CE騫沖彴涓婂揩閫熷紑鍙戠殑涓嶄簩涔嬮夈傜幇鍦‥VB浠嶇劧閫傚悎Windows CE 3.0騫沖彴涓婂皬鍨嬪簲鐢ㄧ▼搴忕殑蹇熷紑鍙戙傚鏋滄?zhèn)ㄤ笉鏄笓鑱岀殑Windows CE紼嬪簭鍛橈紝鑰屽彧鏄渶瑕佸湪Windows CE騫沖彴涓婂紑鍙戞暣涓郴緇熺殑涓閮ㄥ垎錛岄偅涔圗VB鍙互璁╂?zhèn)ㄧ敤寰堢煭鐨勬棄櫁村紑鍙戝嚭鎮(zhèn)ㄦ兂瑕佺殑紼嬪簭銆?br>銆銆
銆銆銆銆EVB鐨勫紑鍙戠幆澧冪殑鎼緩涔熸槸鍗佸垎綆鍗曪紝鎮(zhèn)ㄥ彲浠ヤ粠寰蔣鐨勭綉绔欎笂涓嬭澆EVT 2002錛屽叾涓寘鍚簡EVC 3.0銆丒VB 3.0鍜孭ocket PC 2002 SDK鍜孲martPhone 2002 SDK銆傛寜鐓ф彁紺哄皢EVB鍜孭ocket PC 2002 SDK瀹夎濂藉悗灝卞彲浠ヨ繘琛屽紑鍙戜簡銆係DK涓寘鍚ā鎷熷櫒錛屽湪娌℃湁瀹為檯璁懼鐨勬儏鍐典笅錛屽彲浠ュ埄鐢ㄦā鎷熷櫒鏉ヨ皟璇曠▼搴忋?br>銆銆
銆銆銆銆榪欓噷闇瑕佹敞鎰忕殑鏄紝寮鍙戠幆澧冨拰妯℃嫙鍣ㄤ箣闂存槸閫氳繃緗戠粶榪炴帴鍗忚榪涜閫氳鐨勶紝鎵浠ュ紑鍙戞墍鐢ㄧ殑璁$畻鏈轟笂蹇呴』鏈変竴涓椿鍔ㄧ殑緗戠粶榪炴帴銆傚鏋滄病鏈夛紝鍙互瀹夎寰蔣鐨勮櫄鎷熺綉鍗°?br>銆銆

銆銆銆銆EVB鐨勫紑鍙戠幆澧冧笌VB綾諱技錛屽洜涓篧indows CE搴旂敤紼嬪簭闇瑕佸湪妯℃嫙鍣ㄦ垨鑰呭疄闄呰澶囦笂璋冭瘯錛屾墍浠ユ垜浠繀欏婚夋嫨紼嬪簭鐨勮緭鍑虹洰鏍囥傚鏋滄?zhèn)ㄩ夋嫨浜咵mulation錛屽湪鎮(zhèn)ㄦ寜涓嬭繍琛岋紙鎴朏5錛夊悗錛孍VB灝嗚嚜鍔ㄥ惎鍔ㄦā鎷熷櫒錛屽茍鎶婄▼搴忎笅杞藉埌妯℃嫙鍣ㄤ腑銆?br>銆銆
銆銆銆銆鐢變簬鏂扮殑Windows CE.NET灝嗕笉鍐嶆敮鎸丒VB錛屽井杞緩璁瓻VB紼嬪簭鍛樹嬌鐢╒B.NET寮鍙戞柊鐨勭▼搴忥紝鑰屽浜庡師鏈夌殑EVB紼嬪簭涔熺粰鍑轟簡榪佺Щ璺緞錛屽叧浜庤繖鏂歸潰鐨勮榪幫紝鎮(zhèn)ㄥ彲浠ュ弬鑰僊SDN鏂囩珷銆奙oving from eMbedded Visual Basic to Visual Basic .NET銆嬨?br>銆銆
銆銆銆銆EVC寮鍙戝叆闂?br>銆銆
銆銆銆銆鏃犺鏄疻in32騫沖彴榪樻槸WinCE騫沖彴錛孷isual C++閮芥槸涓涓己澶х殑寮鍙戝伐鍏楓傝孍VC涔熸槸WinCE涓婄殑涓繪祦寮鍙戝伐鍏楓侲VC鏀寔MFC綾誨簱鐨勫瓙闆嗭紝鍙互緇欏紑鍙戣呮彁渚涙渶寮哄ぇ鐨勬敮鎸侊紝涔熶嬌Win32騫沖彴涓婄殑VC紼嬪簭鍛樺彲浠ュ緢瀹規(guī)槗鍦拌縼縐誨埌WinCE騫沖彴涓娿備絾鐢變簬MFC綾誨簱闇瑕佷竴涓狣LL錛屾墍浠ュ鏌愪簺瀛樺偍絀洪棿鏈夐檺鐨勫祵鍏ュ紡璁懼鏉ヨ錛岃繖鏄釜寰堝ぇ鐨勮礋鎷咃紝鎵浠martPhone灝變笉鏀寔MFC銆?br>銆銆

銆銆銆銆璇磋繖涔堝錛岃鎴戜滑鏉ュ垱寤轟竴涓狤VC鐨勫伐紼嬨傛槸涓嶆槸鍜孷C寰堝儚錛岄渶瑕佹彁閱掑ぇ瀹舵敞鎰忕殑鏄紝鐢變簬宓屽叆寮忚澶囨敮鎸佺殑CPU縐嶇被寰堝錛屾垜浠湪閫夋嫨鍒涘緩宸ョ▼綾誨瀷鐨勫悓鏃訛紝涔熻鎶婅宸ョ▼鎵鏀寔鐨凜PU綾誨瀷閫夋嫨濂姐傚垱寤哄伐紼嬬殑榪囩▼鍜孷C鏄竴鏍風殑銆傚綋鐒朵笉鍚岀殑騫沖彴鏀寔鐨勫伐紼嬬被鍨嬫槸涓嶅悓鐨勶紝姣斿Pocket PC 2003鏈夋敮鎸丮FC鍜孉PI鐨勪袱縐嶅伐紼嬶紝鑰孲martPhone 2003鍒欏彧鏈夋敮鎸丄PI鐨勪竴縐嶅伐紼嬨?br>銆銆
銆銆銆銆EVC涓瘮VC鐜涓浜嗕竴琛屼笅鎷夎彍鍗曠殑閫夐」錛屽垎鍒敤鏉ラ夋嫨錛氬伐紼嬨丼DK銆丆PU綾誨瀷鍜岃緭鍑鴻澶囥備互Pocket PC涓轟緥錛屽湪瀹為檯璁懼涓婅皟璇曞簲璇ラ夋嫨Win32(WCE ARMV4)Debug 錛岃屽湪妯℃嫙鍣ㄤ笂鍒欓渶瑕侀夋嫨Win32(WCE emulator)Debug銆?br>3.VS.net寮鍙戝叆闂?br>銆銆
銆銆銆銆鍙堟潵鍒版垜浠殑.NET鏃墮棿浜嗭紝鎴戞庝箞璇村張錛熸渶榪戝ぇ瀹墮兘琚獼AVA鍜?NET鎼炲緱澶存槒鑴戣儉浜嗗惂錛熶笉綆″ぇ瀹舵庝箞鍚碉紝.NET Compact Framework瀵逛簬鎵嬩腑緙哄皯寮鍙戝埄鍣ㄧ殑宓屽叆寮忕▼搴忓憳鏃犵枒鏄竴澶х闊熾俈isual Studio .NET 2003瀹屽叏鏀寔瀵圭Щ鍔ㄨ澶囩殑寮鍙戯紝濂戒簡錛岃鎴戜滑寮濮嬩竴孌靛騫葷殑.NET涔嬫梾鍚с?br>銆銆
銆銆

銆銆
銆銆銆銆鎵撳紑VS.net 2003錛岄塅ile - New – Project,灝辨墦寮浜嗕笂闈㈢殑鐣岄潰銆傝鎴戜滑鏉ュ緩绔嬩竴涓猇isual C#鐨勫伐紼嬶紝鐒跺悗閫夋嫨Smart Device Application錛岀劧鍚嶰K銆?br>銆銆
銆銆

銆銆
銆銆銆銆浣犲湪榪欓噷瑕侀夋嫨鐩爣璁懼錛歅ocket PC銆丼martPhone銆乄indows CE錛堟寚鐨勬槸鍏朵粬騫沖彴錛夛紝涓嬮潰鍒欐槸閫夋嫨鍒涘緩鐨勫伐紼嬬被鍨嬶紝鎴戜滑閫夋嫨“Windows Application”錛屽乏杈規(guī)槸閫夋嫨鐨勫鉤鍙版墍鏀寔鐨勬ā鎷熷櫒銆傛渶鍚庣偣鍑籓K錛屾垜浠氨鍙互榪涘叆VS.NET鐨勪富鐣岄潰浜嗐?br>銆銆
銆銆銆銆閫夋嫨杈撳嚭璁懼鐨勬儏鍐靛拰EVB鍗佸垎綾諱技錛屽彧闇瑕侀夋嫨杈撳嚭璁懼錛岃屼笉鐢ㄩ夋嫨CPU綾誨瀷銆傚綋鐒朵簡錛屽洜涓?NET鏄繍琛屽湪铏氭嫙鏈轟笂鐨勪簡銆傚湪CPU綾誨瀷浼楀鐨勫祵鍏ュ紡棰嗗煙錛?NET鍜孞AVA鎵嶈兘鐪熸鍙戞尌鑷繁鐨勫己欏廣?br>銆銆
銆銆
銆銆
銆銆銆銆褰撶劧錛屾垜浠篃鍙互閫夋嫨VB.NET浣滀負寮鍙戞櫤鑳借澶囩殑璇█錛屾儏鍐靛拰C#瀹屽叏涓鏍楓傜洰鍓嶆櫤鑳借澶囧紑鍙戝彧鏀寔C# 鍜孷B.NET銆傜埍濂紺++鐨勭▼搴忓憳鍙兘榪樿絳変笂涓孌墊椂闂淬?br>銆銆
銆銆Windows CE 寮鍙戠殑蹇犲憡
銆銆
銆銆銆銆鍙互璇村綋鎴戜滑鑺變簡澶ч儴鍒嗘椂闂村皢宸叉湁鐨勫簲鐢ㄧ▼搴忕Щ妞嶅埌Microsoft Windows CE涓備竴鑸鏉ワ紝榪欎釜璁″垝涓嶆槸澶毦銆傛垜浠搗姝ヤ簬Microsoft Win32浠g爜錛屽綋鐒禬indows CE鏄熀浜嶹in32搴旂敤紼嬪簭鎺ュ彛錛圓PI錛夌殑銆傛湁鍒╃殑鏄紝鎴戜滑鐨勫簲鐢ㄧ▼搴忥紙鍗砇aima 鏁版嵁綆$悊鍣級鏈夋柟渚跨殑浣跨敤鎺ュ彛錛屽茍鍖呭惈涓涓ぇ綰︾敱150涓瓙鍑芥暟緇勬垚鐨勫簱錛岃繖浜涘嚱鏁伴兘鏄敱C璇█鍐欐垚錛屽彲浠ョ敤鏉ュ垱寤恒佺鐞嗗拰璁塊棶鏁版嵁搴撱?
銆銆
銆銆銆銆鎸夊緩绔嬪簲鐢ㄧ▼搴忕殑鏂瑰紡鏉ヨ錛屾垜浠師浠ヤ負灝嗗畠縐繪鍒癢indows CE涓槸涓欏圭浉瀵圭畝鍗曠殑C璇█緙栫▼緇冧範銆傜劧鑰岋紝鎴戜滑涓嶄箙渚塊亣鍒板ソ浜涘洶闅俱備粠綺楀績澶ф剰鐨勯敊璇紑濮嬶紝姣斿鍦ㄥ熀浜嶹indows NT 鐨刉indows CE浠跨湡鍣ㄤ笂浣跨敤Microsoft Windows NT搴擄紝鎺ョ潃鍙堣繚鑳學indows CE鐨勭紪紼嬫垝寰嬶紝濡?鍗冧竾涓嶈緇橴nicode錛堝浗闄呮爣鍑嗙粍緇?0646鏍囧噯錛夊瓧絎﹀垎閰嶅鏁板唴瀛樺湴鍧"銆?br>銆銆
銆銆銆銆澶х害鏈夌櫨鍒嗕箣涔?jié)鍗佺殑闂鎴栧鎴枮畱鍦颁笌Unicode鏈夊叧銆傚敖綆nicode緙栫▼涓嶉毦錛屼絾鏄紝褰撶粰鍗曞瓧鑺傚瓧絎︾紪鍐欎唬鐮佹椂錛屽緢瀹規(guī)槗鍑洪敊錛堟垜鏈夎繃璁稿嬈¢敊璇級銆?br>銆銆
銆銆銆銆涓嬮潰榪欎簺蹇犲憡鏄牴鎹垜浠湪Windows CE涓婄紪鍐橰aima 鏁版嵁綆$悊鍣ㄧ殑緇忛獙鎬葷粨鍑烘潵鐨勶紝浣嗘垜鐩鎬俊錛屽湪鍋氫換浣曞叾瀹僕indows CE紼嬪簭涔嬪墠錛屽畠浠兘鍊煎緱鍊熼壌銆傛瘯绔熷ぇ澶氭暟Windows寮鍙戣咃紝褰撲粬浠垱寤虹涓涓猈indows CE搴旂敤紼嬪簭鏃訛紝鐪熸榪愮敤鐨勬槸宸叉帉鎻$殑Win32鐭ヨ瘑銆?br>4. WIN CE 寮鍙戝繝鍛?nbsp;[1]
涓嶈鍦ㄤ豢鐪熷櫒涓婁嬌鐢╓indows NT搴?br>
銆銆榪欓噷鎵璁ㄨ鐨勭涓涓敊璇疄鍦ㄥお鎰氳牏浜嗭紝浣嗘垜榪樻槸闄蜂簡榪涘幓錛屼篃璁鎬綘涔熶細銆傚綋鐢∕icrosoft VC++錛?.0鐗堬級鍒涘緩涓涓猈indows CE紼嬪簭鏃訛紝浣犱細鍙戠幇錛屽寘鍚礬寰勶紙include錛夈?nbsp;搴撹礬寰勶紙library錛夈佸強鍙墽琛岀▼搴忚礬寰勮鑷姩璋冩暣浠ュ尮閰嶅弽搴旂洰鏍囩幆澧冪殑閫夋嫨銆傚洜姝わ紝姣斿璇翠負Windows CE妯℃嫙鍣ㄥ緩绔嬪簲鐢ㄧ▼搴忔椂錛屼綘浼氬彂鐜幫紝include璺緞娌℃湁鎸囧悜Win32鐨勫寘鍚枃浠訛紙鍦╒C鐩綍涓嬶級錛岃屾槸鎸囧悜Windows CE鍖呭惈鏂囦歡錛堝湪WCE鐩綍涓嬶級銆傚崈涓囧埆鍘諱慨鏀廣?br>
銆銆鐢變簬Windows CE鍦╓indows NT涓嬭繍琛岋紝鎵浠ヤ豢鐪熷櫒涓婅繍琛岀殑紼嬪簭鑳藉璋冪敤浠諱竴Windows NT鍔ㄦ侀摼鎺ュ簱(DLL)涓殑鍑芥暟錛屽嵆浣胯繖涓狣LL涓嶆槸妯℃嫙鍣ㄧ殑鎴愬憳涔熶竴鏍楓傛樉鐒訛紝榪欎笉鏄緢濂界殑浜嬶紝鍥犱負鐩稿悓鐨勫嚱鏁頒篃璁稿湪鎵嬫寔PC(H/PC)鎴朩indows CE璁懼涓婁笉鍙敤錛岃屼綘鐨勮蔣浠舵渶緇堣鑳藉湪榪欎簺璁懼涓婅繍琛屻?br>
銆銆絎竴嬈″皢闈濽nicode搴旂敤紼嬪簭瑁呭叆Windows CE浠跨湡鍣ㄦ椂錛屼綘浼氬彂鐜幫紝璁稿姝e湪浣跨敤鐨勫嚱鏁板畠閮戒笉鏀寔錛屼緥濡傜編鍥藉浗瀹舵爣鍑嗗崗浼?ANSI)瀹氫箟鐨勫瓧絎﹀嚱鏁皊trcpy()銆傝繖涔熻寮曡浣犲幓閾炬帴Windows NT 榪愯鏃墮棿搴擄紝浠ヤ究鑳借В鍐蟲墍鏈夐棶棰樸?br>
銆銆濡傛灉浣犳槸鍒氬紑濮嬬敤Windows CE緙栫▼錛屽彲鑳戒綘鑳界敤鐨勫寘鍚枃浠跺拰搴撴枃浠舵槸鏄庢樉鐨勩傜瓟妗堝氨鏄紝浣犱笉瑕侀噰鐢ㄩ偅浜涘湪鍐欐櫘閫歐in32鎴栭潪Windows CE紼嬪簭鏃朵嬌鐢ㄧ殑鍖呭惈鏂囦歡鍜屽簱鏂囦歡銆?br>
涓嶈娣鋒穯TCHARs鍜宐ytes
銆銆濡傛灉浣犳鍦╓indows CE涓婂啓闈濽nicode搴旂敤紼嬪簭錛屼綘鎴栬瑕佸皢鎵鏈夌殑瀛楃涓蹭粠鍗曚釜瀛楃(chars)杞崲涓哄瀛楃(widechars)錛堜緥濡傦紝C鍙橀噺綾誨瀷whcar_t錛夈傚嚑涔庢墍鏈塛indows CE鏀寔鐨刉in32鍜岃繍琛屾椂闂村簱鍑芥暟閮借姹傚瀛楃鍙橀噺銆俉indows 95涓嶆敮鎸乁nicode錛岀劧鑰岋紝涓轟簡浣跨▼搴忎唬鐮佸叿鏈夊彲縐繪鎬э紝浣犺灝藉彲鑳介噰鐢╰char.h涓畾涔夌殑TCHAR綾誨瀷錛屼笉瑕佺洿鎺ヤ嬌鐢╳char_t銆?br>
銆銆TCHAR鏄畾涔変負wchar_t榪樻槸char錛屽彇鍐充簬棰勫鐞嗗櫒鐨勭鍙稶NICODE鏄惁瀹氫箟銆傚悓鏍鳳紝鎵鏈夋湁鍏沖瓧絎︿覆澶勭悊鍑芥暟鐨勫畯錛屽_tcsncpy瀹忥紝瀹冩槸瀹氫箟涓篣nicode鍑芥暟wcsncpy榪樻槸瀹氫箟涓篈NSI鍑芥暟strncpy錛屽彇鍐充簬UNICODE鏄惁瀹氫箟銆?br>
銆銆鍦ㄧ幇瀛樼殑Windows搴旂敤紼嬪簭涓紝鏈変簺浠g爜涔熻鏆楃ず瀛楃闀夸負鍗曞瓧鑺傘傝繖鍦ㄧ粰瀛楃涓插垎閰嶅唴瀛樻椂緇忓父鐢ㄥ埌錛屼緥濡傦細
int myfunc(char *p)
{
char *pszFileName;
pszFileName = malloc(MAXFILELEN);
if(pszFileName)
strncpy(pszFileName, p, MAXFILELEN);
/*etc*/
銆銆鍦ㄨ繖孌典唬鐮佷腑錛屽垎閰嶇殑鍐呭瓨鍧楀簲璇ュ啓浣?MAXFILELEN * sizeof(char))錛屼絾鏄ぇ澶氭暟紼嬪簭鍛樺枩嬈㈠皢瀹冪畝鍖栦負MAXFILELEN錛屽洜涓哄浜庢墍鏈夌殑騫沖彴鏉ヨsizeof(char)鐨勫肩瓑浜?銆傜劧鑰岋紝褰撲綘鐢═CHARS浠f浛澶氫釜瀛楃鏃訛紝寰堝鏄撳繕璁拌繖縐嶅浐鏈夌殑姒傚康錛屼簬鏄皢浠g爜緙栧啓鎴愪笅闈㈢殑褰㈠紡錛?br>
int myfunc(TCHAR *p)
{
TCHAR *pszFileName;
PszFileName = (TCHAR*)malloc(MAXFILELEN);
If (pszFileName)
tcsncpy(pszFileName, p, MAXFILELEN);
/*etc*/
銆銆榪欐槸涓嶈鐨勩傚畠椹笂浼氬鑷村嚭閿欍傝繖閲岀殑閿欒鍦ㄤ簬malloc鍑芥暟涓寚瀹氬彉閲忓ぇ灝忎負bytes錛岀劧鑰宊tcsncpy鍑芥暟涓嬌鐢ㄧ殑絎笁涓彉閲忓嵈鎸囧畾涓篢CHARs鑰屼笉鏄痓ytes銆傚綋UNICODE琚畾涔夋椂錛屼竴涓猅CHAR絳変簬涓や釜瀛楄妭鏁?bytes)銆?br>
銆銆涓婅堪浠g爜孌靛簲璇ユ敼鍐欎負錛?br>
int myfunc(TCHAR *p)
{
TCHAR *pszFileName;
PszFileName = (TCHAR*)malloc(MAXFILELEN * sizeof(TCHAR));
if(pszFileName)
tcsncpy(pszFileName, p, MAXFILELEN);
/*etc*/
5. WIN CE 寮鍙戝繝鍛?nbsp;[2]
涓嶈灝哢nicode 瀛楃涓叉斁鍏ュ鏁板唴瀛樺湴鍧
銆銆鍦↖ntel緋誨垪澶勭悊鍣ㄤ笂錛屼綘鍙互鍦ㄤ竴濂囨暟鍐呭瓨鍦板潃鍌ㄥ瓨浠諱綍鍙橀噺鎴栨暟緇勶紝涓嶄細瀵艱嚧浠諱綍鑷村懡鐨勯敊璇獎鍝嶃備絾鍦℉/PC涓婏紝榪欎竴鐐逛笉涓瀹氳兘琛?nbsp;? 浣犲繀欏誨澶т簬涓涓瓧鑺傜殑鏁版嵁綾誨瀷灝忓績璋ㄦ厧錛屽寘鎷畾涔変負鏃犵鍙風煭鍨嬶紙unsigned short錛?nbsp;鐨剋char_t銆傚綋浣犺娉曡闂畠浠殑鏃跺欙紝灝嗗畠浠疆浜庡鍦板潃浼氬鑷存孩鍑恒?br>
銆銆緙栬緫鍣ㄧ粡甯稿湪榪欎簺闂涓婃彁閱掍綘銆備綘鏃犳硶綆$悊鍫嗘爤鍙橀噺鍦板潃錛屽茍涓旂紪杈戝櫒浼氭鏌ョ‘瀹氳繖浜涘湴鍧涓庡彉閲忕被鍨嬫槸鍚︾浉鍖歸厤銆傚悓鏍鳳紝榪愯鏃墮棿搴撳繀欏諱繚璇佷粠鍫嗕腑鍒嗛厤鐨勫唴瀛樻繪槸婊¤凍涓涓獁ord杈圭晫 錛屾墍浠ヤ綘涓鑸笉蹇呮媴蹇冮偅涓ょ偣銆備絾鏄紝濡傛灉搴旂敤紼嬪簭鍚湁鐢╩emcpy()鍑芥暟鎷瘋礉鍐呭瓨鍖哄煙鐨勪唬鐮侊紝鎴栬呬嬌鐢ㄤ簡鏌愮綾誨瀷鐨勬寚閽堢畻鏈互紜畾鍐呭瓨鍦板潃錛岄棶棰樹篃璁稿氨鍑虹幇浜嗐傝冭檻涓嬮潰鐨勪緥瀛愶細
int send_name (TCHAR * pszName)
{
char *p, *q;
int nLen=(_tcslen(pszName) + 1) * sizeof(TCHAR);
p=maloc(HEADER_SIZE + nLen);
if(p)
{
q = p + HEADER_SIZE;
_tcscpy((TCHAR*)q, pszName);
}
/* etc */
銆銆榪欐浠g爜鏄粠鍫嗕腑鍒嗛厤鍐呭瓨騫跺鍒朵竴涓瓧絎︿覆錛屽湪瀛楃涓茬殑寮澶寸暀涓涓狧EADER_SIZE鐨勫ぇ灝忋傚亣璁綰NICODE瀹氫箟浜嗭紝閭d箞璇ュ瓧絎︿覆灝辨槸涓涓獁idechar瀛楃涓層傚鏋淗EADER_SIZE鏄竴涓伓鏁幫紝榪欐浠g爜灝變細姝e父宸ヤ綔錛屼絾濡傛灉HEADER_SIZE涓哄鏁幫紝榪欐浠g爜灝變細鍑洪敊錛屽洜涓簈鎸囧悜鐨勫湴鍧涔熷皢涓哄鏁般?br>
銆銆娉ㄦ剰錛屽綋浣犲湪Intel緋誨垪澶勭悊鍣ㄤ腑鐨刉indows CE浠跨湡鍣ㄤ笂嫻嬭瘯榪欐浠g爜鏃訛紝榪欎釜闂鏄笉浼氬彂鐢熺殑銆?br>
銆銆鍦ㄨ繖涓緥瀛愪腑錛屽彧瑕佺‘淇滺EADER_SIZE涓哄伓鏁幫紝浣犲氨鍙互閬垮厤闂鐨勫彂鐢熴傜劧鑰岋紝鍦ㄦ煇浜涙儏鍐典笅浣犱篃璁鎬笉鑳借繖涔堝仛銆備緥濡傦紝濡傛灉紼嬪簭鏄粠涓鍙板紡PC杈撳叆鏁版嵁錛屼綘涔熻涓嶅緱涓嶉噰鐢ㄤ簨鍏堝畾涔夎繃鐨勪簩榪涘埗鏍煎紡錛屽敖綆″畠瀵笻/PC涓嶉傚悎銆傚湪榪欑鎯呭喌涓嬶紝浣犲繀欏婚噰鐢ㄥ嚱鏁幫紝榪欎簺鍑芥暟鐢ㄥ瓧絎︽寚閽堟帶鍒跺瓧絎︿覆鑰屼笉鏄疶CHAR鎸囬拡銆傚鏋滀綘鐭ラ亾瀛楃涓茬殑闀垮害錛屽氨鍙互鐢╩emcpy()澶嶅埗瀛楃涓層傚洜姝わ紝閲囩敤閫愪釜瀛楄妭鍒嗘瀽Unicode瀛楃涓茬殑鍑芥暟涔熻瓚充互紜畾瀛楃涓插湪widechars涓殑闀垮害銆?br>
鍦ˋNSI鍜孶nicode瀛楃涓蹭箣闂磋繘琛岀炕璇?br>
銆銆濡傛灉浣犵殑Windows CE搴旂敤紼嬪簭鎺ュ彛浜庡彴寮廝C錛屼篃璁鎬綘蹇呴』鎿嶄綔PC鏈轟腑鐨凙NSI瀛楃涓叉暟鎹紙渚嬪錛宑har瀛楃涓詫級銆傚嵆浣夸綘鍦ㄧ▼搴忎腑鍙敤鍒癠nicode瀛楃涓詫紝榪欓兘鏄簨瀹炪?br>
銆銆浣犱笉鑳藉湪Windows CE涓婂鐞嗕竴涓狝NSI瀛楃涓詫紝鍥犱負娌℃湁鎿嶇旱瀹冧滑鐨勫簱鍑芥暟銆傛渶濂界殑瑙e喅鍔炴硶鏄皢ANSI瀛楃涓茶漿鎹㈡垚Unicode瀛楃涓茬敤鍒癏/PC涓婏紝鐒跺悗鍐嶅皢Unicode瀛楃涓茶漿鎹㈠洖ANSI瀛楃涓茬敤鍒癙C涓娿備負浜嗗畬鎴愯繖浜涜漿鎹紝鍙噰鐢∕ultiByteToWideChar()鍜學ideCharToMultiByte () Win32 API 鍑芥暟銆?br>
瀵逛簬Windows CE 1.0鐨勫瓧絎︿覆杞崲錛屽妶寮錛坔ack錛?br>
銆銆鍦╓indows CE 1.0 鐗堟湰涓紝榪欎簺Win32API鍑芥暟榪樻病鏈夊畬鎴愩傛墍浠ュ鏋滀綘鎯蟲棦瑕佹敮鎸丆E 1.0鍙堣兘鏀寔CE 2.0錛屽氨蹇呴』閲囩敤鍏跺畠鍑芥暟銆傚皢ANSI瀛楃涓茶漿鎹㈡垚Unicode瀛楃涓插彲浠ョ敤wsprintf()錛屽叾涓涓涓弬鏁伴噰鐢ㄤ竴widechar瀛楃涓詫紝騫朵笖璁よ瘑"%S"(澶у啓)錛屾剰鎬濇槸涓涓瓧絎︿覆銆傜敱浜庢病鏈墂sscanf() 鍜?nbsp;wsprintfA()錛屼綘蹇呴』鎯沖埆鐨勫姙娉曞皢Unicode瀛楃涓茶漿鎹㈠洖ANSI瀛楃涓層傜敱浜嶹indows CE 1.0涓嶅湪鍥藉璇█鏀寔(NLS)涓紝浣犱篃璁稿緱姹傚姪浜巋ack錛屽涓嬫墍紺猴細
/*
Definition / prototypes of conversion functions
Multi-Byte (ANSI) to WideChar (Unicode)
atow() converts from ANSI to widechar
wtoa() converts from widechar to ANSI
*/
#if ( _WIN32_WCE >= 101)
#define atow(strA, strW, lenW) \
MultiByteToWidechar (CP_ACP, 0, strA, -1, strW, lenW)
#define wtoa(strW, strA, lenA) \
WideCharToMutiByte (CP_ACP, 0, strW, -1, strA, lenA, NULL, NULL)
#else /* _WIN32_WCE >= 101)*/
/*
MultiByteToWideChar () and WideCharToMultiByte() not supported o-n Windows CE 1.0
*/
int atow(char *strA, wchar_t *strW, int lenW);
int wtoa(wchar_t *strW, char *strA, int lenA);
endif /* _WIN32_WCE >= 101*/
#if (_WIN32_WCE <101)
int atow(char *strA, wchar_t *strW, int lenW)
{
int len;
char *pA;
wchar_t *pW;
/*
Start with len=1, not len=0, as string length returned
must include null terminator, as in MultiByteToWideChar()
*/
for(pA=strA, pW=strW, len=1; lenW; pA++, pW++, lenW--, len++)
{
*pW = (lenW = =1) ? 0 : (wchar_t)( *pA);
if( ! (*pW))
break;
}
return len;
}
int wtoa(wxhar_t *strW, char *strA, int lenA)
{
int len;
char *pA;
wchar_t *pW;
/*
Start with len=1,not len=0, as string length returned
Must include null terminator, as in WideCharToMultiByte()
*/
for(pA=strA, pW=strW, len=1; lenA; pa++, pW++, lenA--, len++)
{
pA = (len==1)? 0 : (char)(pW);
if(!(*pA))
break;
}
return len;
}
#endif /*_WIN32_WCE<101*/
銆銆榪欑閫傚悎浜嶹indows CE 1.0鐨勫疄鐜板姙娉曟瘮浣跨敤wsprintf()鍑芥暟瑕佸鏄擄紝鍥犱負浣跨敤wsprintf()鍑芥暟鏇撮毦浠ラ檺鍒剁洰鏍囨寚閽堟墍鎸囧悜鐨勫瓧絎︿覆鐨勯暱搴︺?br>6. Win CE 寮鍙戝繝鍛?nbsp;[3]
閫夋嫨姝g‘鐨勫瓧絎︿覆姣旇緝鍑芥暟
銆銆濡傛灉浣犺鍒嗙被Unicode鏍囧噯瀛楃涓詫紝浣犱細鏈変互涓嬪嚑涓嚱鏁板彲渚涢夋嫨錛?br>
wcscmp(), wcsncmp(), wcsicmp(), 鍜寃csnicmp()
wcscoll(), wcsncoll(), wcsicoll(),鍜寃csnicoll()
CompareString()
銆銆絎竴綾誨嚱鏁板彲鐢ㄦ潵瀵瑰瓧絎︿覆榪涜姣旇緝錛屼笉鍙傝冨綋鍦幫紙Locale錛夋垨澶栨枃瀛楃銆傚鏋滀綘姘歌繙涓嶆兂鏀寔澶栨枃錛屾垨鑰呬綘浠呬粎鎯蟲祴璇曚竴涓嬩袱涓瓧絎︿覆鐨勫唴瀹規(guī)槸鍚︾浉鍚岋紝榪欑被鍑芥暟闈炲父濂界敤銆?br>
銆銆絎簩綾誨嚱鏁頒嬌鐢ㄧ幇鏈夌殑褰撳湴璁劇疆(current locale settings)錛堢郴緇熻緗紝闄ら潪浣犲湪瀛楃涓叉瘮杈冨嚱鏁頒箣鍓嶈皟鐢ㄤ簡wsetlocale()鍑芥暟錛夋潵姣旇緝涓や釜瀛楃涓層傝繖浜涘嚱鏁頒篃鑳芥紜垎綾誨鏂囧瓧絎︺傚鏋滃綋鍦扮殑瀛楃"C"錛?C" locale錛夎閫夊畾錛岃繖浜涘嚱鏁頒笌絎竴綾誨嚱鏁板氨鍏鋒湁浜嗙浉鍚岀殑鍔熻兘銆?br>
銆銆絎笁綾誨嚱鏁版槸Win32鍑芥暟CompareString()銆傝繖涓嚱鏁扮被浼間簬絎簩綾誨嚱鏁幫紝浣嗘槸瀹冨厑璁鎬綘鎸囧畾褰撳湴璁劇疆錛坱he locale錛変綔涓轟竴涓弬鏁幫紝鑰屼笉鏄嬌鐢ㄧ幇鏈夌殑褰撳湴璁劇疆(current locale settings)銆侰ompareString()鍑芥暟鍏佽浣犻夋嫨鎬у湴鎸囧畾涓や釜瀛楃涓茬殑闀垮害銆備綘鍙互灝嗙浜屼釜鍙傛暟璁劇疆涓篘ORM_IGNORECASE錛屼粠鑰屼嬌鍑芥暟姣旇緝瀛楃涓叉椂涓嶆瘮杈冨ぇ灝忓啓銆?br>
銆銆閫氬父錛屽嵆浣夸笉灝嗙浜屼釜鍙傛暟璁劇疆涓篘ORM_IGNORECASE錛孋ompareString()鍑芥暟涔熶笉鐢ㄦ潵鍖哄垎澶у皬鍐欍傛垜浠粡甯哥敤wcsncoll()鍑芥暟鏉ュ尯鍒嗗ぇ灝忓啓錛岄櫎闈炰嬌鐢ㄥ綋鍦扮殑瀛楃"C"錛?C" locale錛夈傛墍浠ワ紝鍦ㄦ垜浠殑浠g爜涓紝涓嶄嬌鐢–ompareString()鍑芥暟鏉ュ尯鍒嗗ぇ灝忓啓錛岃岀敤wcsncoll()鍑芥暟鏉ュ尯鍒嗗ぇ灝忓啓
涓嶈浣跨敤鐩稿璺緞
銆銆涓嶹indows NT涓嶄竴鏍鳳紝Windows CE娌℃湁褰撳墠鐩綍榪欎釜姒傚康錛屽洜姝わ紝浠諱綍璺緞鍙槸鐩稿浜庢牴鐩綍鑰岃█鐨勩傚鏋滀綘鐨勮蔣浠剁粰鏂囦歡鎴栫洰褰曚嬌鐢ㄧ浉瀵硅礬寰勶紝閭d箞浣犲緢鍙兘鎶婂畠浠Щ鍒板埆鐨勫湴鏂逛簡銆備緥濡傦紝璺緞".\abc"鍦╓indows CE涓褰撲綔"\abc"鐪嬪緟銆?br>
縐昏蛋浜嗗calloc()鍜?nbsp;time()鍑芥暟鐨勮皟鐢?br>
銆銆C榪愯搴撲腑鐨刢alloc()鍑芥暟涓嶈兘浣跨敤錛屼絾鏄痬alloc()鍑芥暟鍙互浠f浛calloc()鍑芥暟銆傚茍涓斾笉瑕佸繕璁幫紝calloc()鍑芥暟鍒濆鍖栨椂鍒嗛厤鐨勫唴瀛樹負闆訛紝鑰宮alloc()鍑芥暟涓嶄竴鏍楓傚悓鏍鳳紝time()鍑芥暟涔熶笉鑳戒嬌鐢紝浣嗕綘鍙互浣跨敤Win32鍑芥暟GetSystemTime()鍑芥暟浠f浛time()鍑芥暟銆?br>
銆銆緇忚繃浠ヤ笂鐨勮鍛婂悗錛屼綘浼氶珮鍏村湴瀛︿範鏈鍚庝護浣犳儕璁剁殑涓ょ偣蹇犲憡銆?br>
涓嶉渶瑕佹敼鍙榃in32 杈撳叆/杈撳嚭錛圛/O錛夋枃浠剁殑璋冪敤
銆銆Win32鐨勮緭鍏ヨ緭鍑哄嚱鏁幫紝Windows CE涔熸敮鎸併傚厑璁鎬綘璞¤闂甒in32鏂囦歡緋葷粺閭f牱璁塊棶瀵硅薄銆侰reateFile()鍑芥暟鍦╓indows CE涓笉鑳借京璁ゆ爣蹇桭ILE_FLAG_RANDOM_ACCESS錛屼絾鏄繖涓爣蹇椾粎鐢ㄤ綔鍙夌殑紓佺洏璁塊棶錛屽茍涓斾笉褰卞搷鍑芥暟璋冪敤鐨勫姛鑳姐?br>
涓嶈鎷呭績瀛楄妭鐨勭姸鎬?br>
銆銆褰撴垜浠妸搴旂敤紼嬪簭鍐欏叆Windows CE鏃訛紝鏈変簡涓涓編濂界殑鍙戠幇錛岄偅灝辨槸Windows CE鐨勬暟瀛楁暟鎹被鍨嬬殑瀛楄妭鐘舵佷笌Intel緇撴瀯鐨勫瓧鑺傜姸鎬佷竴鏍鳳紝鍦ㄦ墍鏈夌殑澶勭悊鍣ㄤ笂錛學indows CE鍧囨敮鎸併?br>
銆銆鍑犱箮璞℃墍鏈夌殑鏁版嵁搴撳紩鎿庝竴鏍鳳紝Raima鏁版嵁搴撶鐞嗗櫒鍦ㄦ暟鎹簱鏂囦歡涓互浜岃繘鍒跺艦寮忎繚瀛樻暟瀛楁暟鎹傝繖灝辨剰鍛充竴涓褰曟棤璁轟綍鏃跺啓鍏ユ暟鎹簱鎴栦粠鏁版嵁搴撹鍑猴紝鍧囪褰撲綔涓緋誨垪鐨勫瓧鑺傛潵澶勭悊錛屼笉綆″畠鍩熺殑鍐呭銆傚彧瑕佹暟鎹簱鏂囦歡涓嶈浼犵粰鍒殑浠諱綍緋葷粺錛屾暟瀛楁暟鎹殑瀛楄妭鐘舵侀棶棰樺氨瑙e喅浜嗐傚鏋滄暟鎹簱鏂囦歡琚竴涓潵鑷師濮嬬郴緇熶笖甯︽湁涓嶅悓瀛楄妭鐘舵佺殑澶勭悊鍣ㄨ闂紝鏁板瓧鏁版嵁灝嗚璇В銆?br>
銆銆鏃犺浣曟椂錛屽綋浣犲湪鎷ユ湁涓嶅悓澶勭悊鍣ㄧ殑鏈哄櫒涓婁紶杈撴枃浠舵椂錛屽氨浼氬嚭鐜拌繖涓棶棰樸傚湪榪欎釜闂涓婏紝鍊煎緱楂樺叴鐨勬槸鎵鏈夌被鍨嬬殑澶勭悊鍣ㄩ兘浣跨敤鐩稿悓鐨勫瓧鑺傜姸鎬併?br>
銆銆鍦ㄤ嬌鐢╓indows CE鏃訛紝榪欎簺蹇犲憡搴旇寮曡搗浣犺凍澶熺殑閲嶈錛岄伩鍏嶅涔犳椂璧板集璺?
]]>