锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1銆乀erminateProcess
鏈鍘熷銆佹渶鏆村姏鐨勫己鍒禼onsole閫鍑虹殑鏂規硶銆俢onsole榪涚▼姣棤榪樻墜涔嬪姏灝眔ver浜嗐備絾鎴戝笇鏈沜onsole鍦ㄦ帹鍑轟箣鍓嶈嚦灝戣兘澶勭悊涓涓?#8220;鍚庝簨”銆?br>
2銆乻ignal / raise
鍘熸潵windows涔熸湁signal錛屼笉榪噆ill鎹㈡垚浜唕aise銆備絾鏄浉瀵筓nix緋誨垪鐨剆ignal鍔熻兘灝卞樊寰堣繙浜嗐傝屼笖鏈変竴涓夯鐑︾殑鍦版柟灝辨槸raise鍙兘瀵規湰console鐢熸晥錛岃屼笉鑳藉鎸囧畾鐨刾rocess銆?br> 鍙互鍦╯ignal閲岄潰鎸囧畾涓涓猚all back鍑芥暟錛屽湪鏀跺埌SIGINT/SIGTERM涔嬬被鐨勬椂鍊欙紝澶勭悊涓涓嬩簨鎯咃紝鐒跺悗閫氱煡鍚勪釜綰跨▼緇撴潫銆?br> 鏃㈢劧涓嶈兘raise鍏朵粬榪涚▼錛屾槸鍚﹁繖涓姛鑳藉氨涓嶈兘鐢ㄤ簡鍛紵鍏跺疄鍙互鑰冭檻涓涓婥reateRemoteThread錛岀劧鍚庡湪鍒漢鐨勮繘紼嬮噷闈aise……
3銆丼etConsoleCtrlHandler / GenerateConsoleCtrlEvent
榪欎釜鏄痗onsole涓撻棬鐢ㄦ潵澶勭悊Ctrl-C/Ctrl-Break/浠ュ強windows鍏蟲満浜嬩歡絳夌殑澶勭悊鏂規硶銆傛瘮signal鏇村己澶с傝屼笖璇存槑涓啓浜嗭紝鍙互瀵瑰叾浠栫殑榪涚▼榪涜澶勭悊錛堣繕鍙互瀵硅繘紼嬬粍澶勭悊錛夈傜敤緗戜笂鐨勮瘽璇村氨鏄細寰堝コ瀛愶紝寰堝紦铏斤紒
浣嗘槸瑕佹敞鎰忥紝濡傛灉瑕佸鍏跺垱寤虹殑瀛愯繘紼嬭繘琛屽鐞嗙殑鏃跺欙紝鍒涘緩瀛愯繘紼嬪繀欏昏浣跨敤CREATE_NEW_PROCESS_GROUP鏍囧織銆傚彟澶栦竴鐐癸紝鏂囨。鍐欑殑姣旇緝闅愭櫐鐨勫氨鏄紝榪涚▼蹇呴』瑕佹湁console紿楀彛銆傚惁鍒欙紝璋冪敤GenerateConsoleCtrlEvent浼氳繑鍥?錛岃ERROR_INVALID_HANDLE銆?br> 闂鏉ヤ簡錛孲ervice鏈韓鏄病鏈塩onsole紿楀彛鐨勶紝Service寤虹珛鐨勫瓙榪涚▼灝卞繀欏昏鑷甫紿楀彛浜嗐備絾鏄竴鑸負浜嗙編瑙傦紝Service鍚姩鐨勮繘紼嬮兘涓嶆兂甯︽湁紿楀彛銆傞偅灝卞彉鎴愪簡瀛愯繘紼嬫病鏈塩onsole紿楀彛錛孏enerateConsoleCtrlEvent澶辨晥浜嗐?br> 鍦ㄧ綉涓婃煡浜嗗緢澶氳祫鏂欙紙鎬庝箞娌$湅鍒板緢榛勫緢鏆村姏鍛紵錛燂紵錛夛紝鍏朵腑鍦?strong>
Louis K. Thomas
<louiSendSignal 鎻愬埌涓縐嶅仛娉曪紝灝辨槸鍏堣幏寰梜ernel32!CtrlRoutine鐨勫叆鍙o紝鐒跺悗閫氳繃CreateRemoteThread鐨勬柟娉曪紝璁╄繙紼嬬殑console鏉ユ墽琛宬ernel32!CtrlRoutine銆備絾榪欑鏂規硶鏈変釜闂錛屽湪鑾峰緱kernel32!CtrlRoutine鐨勬椂鍊欙紝涔熸槸浣跨敤GenerateConsoleCtrlEvent鏉ヨ幏寰椼備絾鏄疭ervice鑷繁鏈韓娌℃湁console紿楀彛錛屼竴璋冪敤GenerateConsoleCtrlEvent涔熸槸鍑洪敊銆?br>鑰屽彟涓綃?google璁ㄨ緇?/a> 鏂囩珷錛岄噷闈㈡彁鍒板師鏉ュ彲浠ュ厛AllocConsole銆佺劧鍚嶨enerateConsoleCtrlEvent銆佺劧鍚嶧reeConsole……浜庢槸瑙e喅鏂規灝卞彉鎴愶細
Service閲岄潰:
鍏圓llocConsole
鐒跺悗鍒╃敤GenerateConsoleCtrlEvent鑾峰緱kernel32!CtrlRoutine
鐒跺悗FreeConsole
褰撻渶瑕佺粨鏉熻繘紼嬬殑鏃跺欙紝灝辮皟鐢–reateRemoteThread錛屾妸kernel32!CtrlRoutine鐨勪唬鐮佹敞鍏ュ埌瀛恜rocess涓墽琛?br> 榪欐牱澶у閮界湅涓嶅埌console紿楀彛錛坰ervice閲岄潰AllocConsole寰堝揩錛岀湅涓嶅埌紿楀彛鍑烘潵錛岀敋鑷蟲鐤戞牴鏈氨鏈夋病鏈夌獥鍙e嚭鏉ワ級錛屽悓鏃跺張鑳介氱煡瀛愯繘紼嬩紭闆呭湴閫鍑恒?br>
瀛樺湪闂錛氬鏋滄垜鐨勬満鍣ㄤ綔涓烘湇鍔″櫒鍚姩錛屽嵆娌℃湁榪涘叆鐧誨綍鐘舵侊紝涓嶇煡閬撹繖鏍峰惎鍔ㄧ殑Service浼氫笉浼氭湁闂鍛紵錛熸殏鏃惰繕娌℃湁鏃墮棿嫻嬭瘯銆?br>
]]> sth@hotm ail.co m> 鐨?/span>
]]>
OpenDBX錛屼竴涓紑婧愮殑銆佺畝鍗曠殑銆佸彲浠ヨ闂縐嶆暟鎹簱鐨凜綾誨簱銆傛寜浣滆呰鐨勶紝宸茬粡鏀寔錛?br />
鑰屼笖濂藉儚鏄嬌鐢ㄥ姩鎬佽澆鍏ユā鍧楁柟寮忥紝鍗砫lopen鎵撳紑鐩稿簲椹卞姩妯″潡鐨剆o鐨勬柟寮忥紝鏄湁鐐筄DBC鐨勫懗閬撱?br />涓嶈繃鏀寔鐨勬暟鎹被鍨嬩互鍙奡QL鏌ヨ鐨勫姛鑳芥湁闄愩?br />鐣欑潃浠ュ悗鍙兘浼氭湁浜涘弬鑰冧環鍊箋?img src ="http://www.shnenglu.com/cyt/aggbug/20908.html" width = "1" height = "1" />
]]>
榪欏嚑澶╄鍘熸潵欏圭洰鐨凜++浠g爜浠?2bit鐨勫鉤鍙扮Щ妞嶅埌64bit鐨勫鉤鍙般傜敱浜庝互鍓嶇紪鍐欑被搴撶殑鏃跺欏凡緇忓崄鍒嗗皬蹇冿紝涔熸棭鏈夐璋嬶紝鎵浠ョ珶鐒跺緢欏哄埄鐨勫叏閮ㄧ紪璇戦氳繃錛岃屼笖-Wall涓嬮潰閮芥病鏈変換浣晈arning銆傛弧蹇冩鍠滀箣涓嬭繍琛屼簡紼嬪簭銆傝皝鐭ラ亾椹笂灝辨槸涓涓猄egment faul銆傛伯涓т箣浣欑敤gdb璺熻釜浜嗗崐澶╅兘涓嶇煡閬撲粈涔堝湴鏂圭殑闂銆傚姞涓妚algrind錛屼篃鏄竴澶撮浘姘達紝绔熺劧鏄鏍囧噯STL鐨刪ash_map鐨勯棶棰樷︹︽渶鍚庡湪涓嬈¤窡韙殑鏃跺欙紝鏃犳剰涓鏌ヤ竴涓寚閽堢殑鍒濆鍖栧鹼紝鍙戠幇涓嶄負絀猴紝鍘熷洜搴旇灝卞湪榪欓噷銆?br />緲繪煡浠g爜鐨勪笂涓嬫枃錛屽師鏉ユ寚閽堟槸璺熶竴涓猧nt鏀懼湪鍚屼竴涓猽nion褰撲腑錛岃寀nion鐨勫垵濮嬪寲鍙垵濮嬪寲浜唅nt錛岃屾病鏈夊垵濮嬪寲鎸囬拡銆傚湪64bit鏈哄櫒鐨刧cc涓嬶紝int鏄?2bit鑰屾寚閽堟槸64bit錛屾墍浠ュ氨瀵艱嚧鎸囬拡涓嶄負絀虹殑鐜拌薄銆傛墍浠ヨ刀绱ф妸浠g爜涓墍鏈塽nion鐨勫湴鏂歸兘鎵懼嚭鏉ユ鏌ヤ竴閬嶃傚垢濂絬nion榪欑涓滆タ騫蟲椂涓嶆暍澶氱敤錛屼篃娌″彂鐜板叾浠栫殑寮傚父銆傜▼搴忛噸鏂扮紪璇戯紝鍐嶈繍琛岋紝娌℃湁Segment fault浜嗐?br />
鐒跺悗鍐嶈繍琛屼簡涓鎵箄nit test銆傚彂鐜板叾涓湁鍑犱釜涓嶈兘閫氳繃錛屽叾鍘熷洜鍏跺疄涔熸槸姣旇緝鏃犺亰銆傞兘鏄嚜宸變笉灝忓績涔嬭繃錛?br />1銆乻ha1鐨勪唬鐮乧opy php鐨勶紝鍏朵腑涓涓猵hp_uint32鍙橀噺绔熺劧鑷繁鍐欎簡unigned long錛屽偦鐡滆嚧鏋?br />2銆佹湁涓湴鏂逛繚瀛樺悇縐嶉暱搴︽暣鏁板埌鏂囦歡錛屽洜涓哄伔鎳掞紝鎶婂嚱鏁板啓鎴愪簡妯℃澘錛屽ぇ姒傚氨鏄細
聽聽聽template<typename typeInt>
聽聽聽聽聽聽int write(typeInt n) {
聽聽聽聽聽聽聽聽聽writeToFile( &n, sizeof(n));
聽聽聽聽聽聽}
聽聽聽鐒跺悗涓涓笉灝忓績錛屾兂鍐欎釜string鐨勯暱搴︾殑鏃跺欏氨鍙樻垚浜嗭細聽 write( str.length() );
聽聽 str.length()綾誨瀷鏄痵ize_t錛?4bit錛屼笌32bit緋葷粺鐨勪笉涓鏍鳳紝褰撶劧涔熷氨鍑洪敊浜嗐?br />聽聽 鍏跺疄騫蟲椂閮藉凡緇忓緢灝忓績錛屽敖閲忎嬌鐢╯tatic_cast寮哄埗杞崲涓虹壒瀹氶暱搴︾被鍨嬬殑鍙橀噺鍐嶈緭鍑虹殑浜嗭紝鍋忓亸灝辨槸婕忎簡涓涓や釜鍦版柟銆?/p>
]]>
聽聽聽 db4o緇欐垜鐨勫嵃璞″氨鏄笉渚濊禆鍏崇郴鏁版嵁搴撶殑鈥淗ibernate鈥濓紝瀹屽叏灝辨槸鍏ㄨ嚜鍔ㄥ璞″簭鍒楀寲 + 瓚呭己鏌ヨ銆傛寜鐓у畼鏂圭粰鍑虹殑鏁版嵁錛屽叾宓屽叆寮忕殑搴旂敤鐜涓嬫ц兘鐪熺殑鏄棤鍑哄叾鍙充簡銆備絾鎸夋垜鐨勭悊瑙o紝鐢變簬娌℃湁浣庣矑搴﹂攣錛屽繀鐒跺瓨鍦ㄦ棤娉曡В鍐崇殑騫跺彂鍐茬獊錛屾垨鑰呭茍鍙戣闂涓嶅ぇ錛屽茍鍙戞洿鏀規ц兘搴旇浼氭湁褰卞搷銆傜┒绔熺敤浜嗕粈涔堣秴寮烘妧鏈偅灝變笉鐭ラ亾錛屾垨鑰呮湁絀烘壘鏉ョ爺絀朵竴涓嬨備釜浜烘劅瑙塪b4o騫朵笉鏄鐢ㄦ潵鏇夸唬鏁版嵁搴擄紝鑰屾槸鏁版嵁淇濆瓨鐨勪竴涓緟鍔┿傚崄鍒嗛傚悎鐢ㄤ簬Cache緋葷粺鎴栬呭簲鐢ㄤ簬宓屽叆寮忚澶囥俤b4o鍙彁渚汮ava鍜孋#鎺ュ彛錛屽浜庣洰鍓峆DA搴旂敤鏉ヨ浼間箮瑕佹眰楂樹簡鐐廣傚氨濡俁ayman鎵璇達紝瑙e喅浜咰PU鍜屽唴瀛橀棶棰樿繕鏈変竴涓數婧愰棶棰樹及璁DA榪戞湡涔熸棤娉曡В鍐熾?span style="COLOR: red">Christof涓鍐嶅己璋冨叾涓夋寮忎簨鍔′繚璇佹暟鎹枃浠跺畬鏁達紱蹇熸槗鐢ㄧ殑寮鍙戞ā寮忥紱瓚呭ぇ瑙勬ā鏁版嵁鐨勬敮鎸佲︹﹁嚦浜庝粬浠叕鍙哥殑寮婧愮泩鍒╂ā寮忥紝灝忓紵鑻辨枃姘村鉤鏈夐檺錛屽惉涓嶆噦浜嗐?br />聽聽聽 寰堜箙浠ュ墠灝辨彁鍒拌繃GigaBase錛屼技涔庡氨鏄痙b4o鐨凜++鐗堟湰銆備笉榪嘋++鍏堝ぉ涓嶈凍錛岀己灝戝弽灝勬満鍒訛紝瀹炵幇褰撶劧涓嶈兘鍍廳b4o鑸紭緹庝簡銆備絾浼間箮榪欎釜閫夋嫨涔熶笉閿欙紝鍙互鍛婂埆BerkeleyDB銆乻qlit鈥︹︿粠姝ゆ鍏O鏁版嵁淇濆瓨鐨勨滃ぉ鍫傗濃︹?/font>
]]>
]]>
]]>
聽a銆丱CIStmtPrepare棰勫鐞哠QL璇彞錛?insert into mytable (myimg) values (empty_blob()) returning myimg into :pImg"
聽b銆佽皟鐢∣CIDescriptorAlloc錛岀敤鍙傛暟OCI_DTYPE_LOB錛岃幏寰椾竴涓狶OB鐨勫彞鏌?br />聽c銆佺敤OCIStmtBindByPos鎴栬匫CIStmtBindByName錛屾妸LOB鍙ユ焺鍜屽弬鏁?pImg緇戝畾
聽d銆丱CIStmtExecute鎵ц
聽e銆丱CILobWrite寰LOB閲岄潰鍐欐暟鎹?br />聽f銆乧ommit鍜岄噴鏀捐祫婧愮瓑絳?br />聽
聽闂鏄繖涓猄QL璇彞涔熷お鐗瑰埆浜嗭紝鍜屽叾浠栨暟鎹簱鐨凷QL涓嶄竴鏍楓備絾鏄湪java鐨勫疄鐜頒腑錛屽茍涓嶉渶瑕佽繖涔堝鎬殑璇硶銆?br />聽insert into mytable (myimg) values(?)
聽灝辮凍澶熶簡銆?br />聽鍦ㄦ垜浠殑搴旂敤涓紝鑳藉緇熶竴鍚屼竴縐峉QL鐨勫啓娉曞綋鐒舵槸鏈濂界殑錛屾渶濂藉氨鏄細
聽insert into mytable (myimg) values (:pImg)聽閭e氨鍜屽叾浠栫殑鏁版嵁澶勭悊涓鑷翠簡銆?br />聽
聽鍋氫簡寰堝鐨勫皾璇曪紝緇堜簬鎵懼埌瑙e喅鐨勬柟娉曪細
聽a銆丱CIStmtPrepare棰勫鐞哠QL璇彞錛?insert into mytable (myimg) values (:pImg)"
聽b銆佽皟鐢∣CIDescriptorAlloc錛岀敤鍙傛暟OCI_DTYPE_LOB錛岃幏寰椾竴涓狶OB鐨勫彞鏌?br />聽c銆侀氳繃OCILobCreateTemporary鍑芥暟錛屼負LOB鍙ユ焺鍒涘緩涓存椂LOB瀵硅薄
聽d銆丱CILobWriteAppend寰LOB鍙ユ焺鍐欐暟鎹?br />聽e銆佺敤OCIStmtBindByPos鎴栬匫CIStmtBindByName錛屾妸LOB鍙ユ焺鍜屽弬鏁?pImg緇戝畾
聽f銆丱CIStmtExecute鎵ц
聽g銆乧ommit鍜岄噴鏀捐祫婧愮瓑絳?br />聽
聽緇忚繃綆鍗曠殑灝佽錛孡OB鎿嶄綔綆鍗曞緢澶氫簡錛?br />聽TDBConnection conn = TDatabase::getConnection( strConnection );
聽TDBStatement dbStatement(conn.getStatement());
聽dbStatement.prepareSQL( "insert into mytable (myimg) values (:pImg)" );
聽dbStatement.getParam("pImg").attachInputStream( fStream );
聽dbStatement.execSQL();
聽conn.commite();
聽
2銆佺┖瀛楃涓?br />聽鎻掑叆涓涓┖瀛楃涓詫紝OCIBindByPos/OCIBindByName鐨勬椂鍊欙紝閭d釜瀛楃涓茬殑鏁版嵁綾誨瀷錛屼笉鑳芥槸SQLT_LVC錛岀敤SQLT_CHR鍊掓槸娌℃湁闂銆?br />聽鍏蜂綋涓轟粈涔堬紝鍙湁Oracle鑷繁鐭ラ亾浜嗐?br />聽
3銆佹寚瀹欼P榪炴帴Oracle
聽閫氳繃OCIServerAttach閲岄潰鎸囧畾緇戝畾鐨凷ID榪炴帴鏁版嵁搴撱傜敤SID榪炴帴Oracle褰撶劧鏈夊畠鐨勫ソ澶勩傚鎬殑鏄疛DBC鑳界敤IP鍜孭ort鎸囧畾榪炴帴鍝釜Oracle銆?br />聽鎵鵑亶OCI鐨勫府鍔╅兘鎵句笉鍒癐P榪炴帴鏂規硶銆俫oogle浜嗗緢涔咃紝鎵懼埌瑙e喅鐨勬柟娉曪紝鑷繁鐢熸垚SID錛?br />聽string strSID = "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=%1)(PORT=%2)))(CONNECT_DATA=(SERVICE_NAME=%3)))";
聽閲岄潰鐨?1璁句負Oracle鏈嶅姟鍣ㄧ殑IP錛?2璁句負Oracle鏈嶅姟鍣ㄧ殑Port錛屼竴鑸槸1521錛?3灝辨槸database鐨勫悕瀛椼?br />聽鎶婅繖涓瓧絎︿覆鏀懼叆OCIServerAttach
聽
froofyJIT:
{_BLOCK_.header.logo} {_BLOCK_.header.site_name} |
{secondary_links}
{primary_links} |
{_BLOCK_.header.title} {_BLOCK_.header.help} {_BLOCK_.header.message} |
1銆?amp;鐨勮漿涔?BR> 浠ュ墠涓鐩撮兘涓嶇煡閬擄紝鍘熸潵鍦⊿QLPlus涓紝&鐨勫惈涔夋槸璁╃敤鎴瘋緭鍏ュ弬鏁般?BR>渚嬪錛歩nsert into my_table values('0=0&1=0&2=0');
鎵цSQLPlus鐨勬椂鍊欙紝灝變細鎻愮ず錛?BR>Enter value for 1: abc
Enter value for 2: efg
鐒跺悗瀹為檯鎻掑叆鐨勭粨鏋滄槸錛?BR>insert into my_table values('0=0abc=0efg=0');
瑕佸幓鎺夎繖涓姛鑳芥湁涓ょ瀹炵幇鏂規硶錛?BR> A銆佺敤杞箟瀛楃錛氬湪QQ緹ゅ弸e鐐圭殑甯姪涓嬶紝鎵懼埌涓嬮潰榪欐璇濓細
SQLPLUS recognizes the '&' "and" character as a substitution character for data input.
So to store a string such as "Johnson & Son" into an Oracle table, use an escape character, as in 'Johnson \& Son' (with the \&).
But first turn on escape character processing:
SQL> set escape \
B銆佹洿綆鍗曪紝鍏抽棴榪欎釜鍔熻兘灝辮浜嗭細
SET DEFINE OFF;
Use SET DEFINE OFF to prevent scanning for the substitution character. Reference: bug 13199
2銆乵d5
鍏跺疄搴旇涓嶇畻鏄鎬棶棰橈紝鐢變簬shell scrip璋冪敤鐨勪竴鎵瑰垵濮嬪寲鏁版嵁搴撴暟鎹殑SQL璇彞鎯沖湪mysql鍜孫racle涔嬮棿閫氱敤錛屽嵆涓嶆兂mysql涓鐞嗕竴浠斤紝oracle涓鐞嗕竴浠姐傚叾瀹炶鍙ュぇ閮ㄥ垎閮芥槸鐩稿悓錛屼絾鍞嫭鏈変釜鍒濆鍖栫鐞嗗憳瀵嗙爜鐨凷QL璇彞紕頒笂楹葷儲銆傚瘑鐮佹槸md5鍔犲瘑鐨勶紝鎻掑叆mysql鐨勬椂鍊欏彲浠ヤ嬌鐢╩ysql鐨刴d5鍑芥暟錛屼絾鏄疧racle娌℃湁鍚屽悕鐨勫嚱鏁般傜綉涓奼oogle涓鎶婏紝寰堝瑙e喅鏂規錛屼絾璇曚簡鍑犱釜閮戒笉琛屻傚悗鏉ョ患鍚堜簡鍑犱釜鐨勫仛娉曪紝鏈緇堝緱鍑轟竴涓粨鏋滐細
CREATE OR REPLACE FUNCTION md5(passwd IN VARCHAR2) RETURN VARCHAR2
IS
retval varchar2(32);
BEGIN
retval := lower( utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) );
RETURN retval;
END;
榪戞潵鍏徃鍏朵腑涓涓」鐩渶瑕佺▼搴忓湪g++ 3.4.3涓嬬紪璇戯紝鑰屾簮浠g爜鍦╣++ 3.2.3涓嬮潰涓涓猈arning閮芥病鏈夛紝浣嗘槸鍦?.4.3涓嬪垯涓鍫咵rror浜嗐傚悗鏉ュ彂鐜板師鏉++ 3.4.3涓ユ牸浜嗗緢澶氥傚叾涓滃嚭闂鈥濇渶澶氱殑鏄繖縐嶆儏鍐碉細
class TObjBase
{
public:
TObjBase(void) : m_nVal(0) {}
~TObjBase(void) {}
int getVal(void) const { return m_nVal; }
void setVal(int n) { m_nVal = n; }
protected:
int m_nVal;
};
template<class typeObj>
class TExtObj : public typeObj
{
public:
TExtObj(void) : typeObj() {}
int getExtVal(void) const { return getVal() + 100; }
};
榪欐槸涓縐嶆瘮杈冨父瑙佺殑搴旂敤錛孉dapter鍜孌ecorator妯″紡閮戒細鐢ㄥ埌榪欑鎶鏈備絾闂鍦ㄤ簬g++ 3.4.3鍗磋int getExtVal(void) const { return getVal() + 100; }榪欎竴琛岄敊璇紝getVal()鎵句笉鍒般?/P>
鐨勭‘錛屽崟浠ExtObj榪欎釜綾葷湅鏉ワ紝鎬庝箞涔熸槸鎵句笉鍒癵etVal()鐨勫畾涔夊湪鍝噷銆俫++ 3.2.3浠ュ強VC6銆乂C7絳夛紝鍧囦互鍗佸垎鐩鎬俊寮鍙戣呯殑鎬佸害鐚滄祴榪欎釜鍑芥暟蹇呭畾鍦ㄥ叾浠栧湴鏂瑰畾涔変簡錛屾湁鍙兘鏄閮ㄧ嫭绔嬬殑鍑芥暟銆佹湁鍙兘鏄痶ypeObj鐨勬垚鍛樺嚱鏁般備絾g++ 3.4.3鍗撮潪瑕佺▼搴忓憳寰堣礋璐d換鐨勫憡璇夌紪璇戝櫒錛岀┒绔熸槸鍝竴涓猤etVal()錛屼簬鏄В鍐蟲柟娉曪細
鏂規硶涓錛?BR>int getExtVal(void) const { return typeObj::getVal() + 100; }
鎴栬?/P>
鏂規硶浜岋細
int getExtVal(void) const { return this->getVal() + 100; }
褰撶劧錛屽鏋滄槸澶栭儴鐨勭嫭绔嬪嚱鏁幫紝閭e氨鏄細
int getExtVal(void) const { return ::getVal() + 100; }
鐒惰岋紝鍦╣etVal()鏄櫄鍑芥暟鐨勬椂鍊欙紝鏂規硶涓鍜屾柟娉曚簩鏄湁鍖哄埆鐨勶紝榪欎釜鏄渶瑕佸崄鍒嗗皬蹇冪殑浜嬫儏銆傛柟娉曚竴鏄棤璁轟粈涔堟椂鍊欓兘浼氳皟鐢╰ypeObj鐨刧etVal()錛屾柟娉曚簩鏄皟鐢ㄥ綋鍓嶇被鏈閫傚悎鐨勮櫄鍑芥暟getVal()銆?BR>
void TMyClass::onLoad(TStorage & s)
{
s >> member1;
s >> member2;
......
}
鍋囧s婊′簡錛圫ave鐨勬椂鍊欙級鎴栬卻鏁版嵁涓嶈凍錛圠oad鐨勬椂鍊欙級錛屽嚱鏁頒細絳夊緟錛岀洿鍒皊鍙敤鎴栬呭嚭閿欓鍑恒傜浉褰撲簬榪涚▼鐨凷tack甯垜浠繚瀛樹簡I/O鐘舵佺殑涓婁笅鏂囥?/P>
浣嗘槸鐜板湪瑕佽漿鍒板紓姝ユ柟寮廔/O錛屽綋s鈥滀笉鍙敤鈥濈殑鏃跺欙紝綰跨▼搴旇涓柇褰撳墠鐨勬搷浣滐紝鎶奍/O鐘舵佺殑涓婁笅鏂囦繚瀛樹笅鏉ワ紝杞屽仛鍏朵粬鐨勬搷浣溿?BR>鎵浠ラ夯鐑﹀氨鏉ヤ簡錛岃鑷繁鍋氳繖涓笂涓嬫枃鐨勪繚瀛樸備竴鑸潵璇磋璁板綍浠ヤ笅鐨勫唴瀹癸細
1銆佹搷浣滃埌鍝竴涓垚鍛樸?BR>2銆佸亣濡傛垚鍛樻槸涓涓櫘閫氱殑綾誨瀷銆侀偅灝辮璁板綍鎿嶄綔鍒扮被鍨嬬殑鍝竴涓猙yte銆?BR>2銆佸鏋滄垚鍛樻槸涓涓鍚堢被鍨嬶紝鍚屾牱錛岄掑綊鍦板洖鍒頒簡1銆?/P>
鍥犳錛屼笂涓嬫枃淇濆瓨鐨勭粨鏋滀竴鑸兘鏄竴涓嚜宸卞仛鐨剆tack錛岄噷闈㈠氨鏄褰曡繖涓掑綊鐨勮繃紼嬨?/P>
鍏跺疄鎯蟲兂錛屼綍鑻︿負浜嗙渷閭e嚑鍗乲鐨勭┖闂存姌紓ㄨ嚜宸卞憿錛屼緥濡傝緭鍑猴紝鍏堢敤鍚屾鐨勬柟寮忔妸鏁版嵁璁板綍鍦ㄥ唴瀛橈紝鐒跺悗灝辮褰曞唴瀛樼殑璧峰鍦板潃鍜岄暱搴︼紝寮傛澶勭悊鐨勬椂鍊欏氨鎶婂唴瀛樿緭鍑猴紝濡傛灉娌℃湁杈撳嚭瀹岀殑錛屽氨璁頒笅鏈緭鍑洪儴鍒嗙殑璧峰鍦板潃鍜岄暱搴︼紝絳夊緟涓嬩竴嬈°?BR>涓嶈繃褰撶粨鏋滄瘮杈冨簽澶х殑鏃跺欙紝榪樻槸闇瑕佽嚜宸辨參鎱㈣嫤騫詫紝鐪熸槸鎮叉儴鈥︹?/P>