锘??xml version="1.0" encoding="utf-8" standalone="yes"?>极品av少妇一区二区,久久免费精品视频,久久精品毛片http://m.shnenglu.com/yearner/鏅烘収闇瑕佺偣婊寸殑縐瘡zh-cnMon, 29 Sep 2025 23:54:46 GMTMon, 29 Sep 2025 23:54:46 GMT60鍏充簬MSVCRTD.lib鐨勭紪璇戦敊璇?/title><link>http://m.shnenglu.com/yearner/archive/2010/07/14/120309.html</link><dc:creator>(Leyn)欏戒富</dc:creator><author>(Leyn)欏戒富</author><pubDate>Wed, 14 Jul 2010 03:30:00 GMT</pubDate><guid>http://m.shnenglu.com/yearner/archive/2010/07/14/120309.html</guid><wfw:comment>http://m.shnenglu.com/yearner/comments/120309.html</wfw:comment><comments>http://m.shnenglu.com/yearner/archive/2010/07/14/120309.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yearner/comments/commentRss/120309.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yearner/services/trackbacks/120309.html</trackback:ping><description><![CDATA[MFC鐨勫伐紼嬪寘smcinst錛岀紪璇戝悗鍑虹幇浠ヤ笅閿欒<br>MSVCRTD.lib(MSVCRTD.dll)   :   error   LNK2005:   _free   already   defined   in   libcmtd.lib(dbgheap.obj) <br>MSVCRTD.lib(MSVCRTD.dll)   :   error   LNK2005:   _malloc   already   defined   in   libcmtd.lib(dbgheap.obj) <br>....<br>LINK   :   warning   LNK4098:   defaultlib   "MSVCRTD "   conflicts   with   use   of   other   libs;   use   /NODEFAULTLIB:library <br>Debug/NKOTwain.ocx   :   fatal   error   LNK1169:   one   or   more   multiply   defined   symbols   found <br>Error   executing   link.exe. <br><br><br>鏍囧噯紼嬪簭搴撴湁鍏崇殑閫夐」: /ML銆?MLd銆?MT銆?MTd銆?MD銆?MDd銆?br>榪欎簺閫夐」瀵瑰簲緙栬瘧鍣ㄥ簲鐢ㄧ▼搴忔墍瑕佷嬌鐢ㄨ繍琛屾椂C鏍囧噯紼嬪簭搴撱?br>/ML(緙虹渷閫夐」)瀵瑰簲鍗曠嚎紼嬮潤(rùn)鎬佺増鐨勬爣鍑嗙▼搴忓簱(libc.lib)錛?br>/MT瀵瑰簲澶氱嚎紼嬮潤(rùn)鎬佺増鏍囧噯搴?libcmt.lib)錛屾鏃剁紪璇戝櫒浼?xì)鑷姩瀹氫箟_MT瀹忥紱<br>/MD瀵瑰簲澶氱嚎紼婦LL鐗?瀵煎叆搴搈svcrt.lib錛孌LL鏄痬svcrt.dll)錛岀紪璇戝櫒鑷姩瀹氫箟_MT鍜宊DLL涓や釜瀹忋傚悗闈㈠姞d鐨勯夐」閮戒細(xì)璁╃紪璇戝櫒鑷姩澶氬畾涔変竴涓猒DEBUG瀹忥紝琛ㄧず瑕佷嬌鐢ㄥ搴旀爣鍑嗗簱鐨勮皟璇曠増錛屽洜姝?MLd瀵瑰簲璋冭瘯鐗堝崟綰跨▼闈?rùn)鎬佹爣鍑嗗簱(libcd.lib)錛?br>/MTd瀵瑰簲璋冭瘯鐗堝綰跨▼闈?rùn)鎬佹爣鍑嗗簱(libcmtd.lib)錛?br>/MDd瀵瑰簲璋冭瘯鐗堝綰跨▼DLL鏍囧噯搴?瀵煎叆搴搈svcrtd.lib錛孌LL鏄痬svcrtd.dll)銆?br><br>鍥犳錛屼笂榪扮殑conflicts鍘熷洜鏄嚭鐜頒簡(jiǎn)瀵硅繍琛屽簱鐗堟湰璋冪敤鐨勪笉涓鑷淬?br>灝嗘湁鐩鎬簰璋冪敤鍏崇郴鐨勫伐紼嬪睘鎬?>浠g爜鐢熸垚->榪愯鏃跺簱 璁劇疆鎴愮粺涓閫夐」錛屽 /mtd. <img src ="http://m.shnenglu.com/yearner/aggbug/120309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yearner/" target="_blank">(Leyn)欏戒富</a> 2010-07-14 11:30 <a href="http://m.shnenglu.com/yearner/archive/2010/07/14/120309.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> Quoted printable 緙栫爜璇存槑http://m.shnenglu.com/yearner/archive/2008/11/20/67421.html(Leyn)欏戒富(Leyn)欏戒富Thu, 20 Nov 2008 13:46:00 GMThttp://m.shnenglu.com/yearner/archive/2008/11/20/67421.htmlhttp://m.shnenglu.com/yearner/comments/67421.htmlhttp://m.shnenglu.com/yearner/archive/2008/11/20/67421.html#Feedback0http://m.shnenglu.com/yearner/comments/commentRss/67421.htmlhttp://m.shnenglu.com/yearner/services/trackbacks/67421.html

3.2      Quoted printable 緙栫爜

         QP 緙栫爜鐢ㄤ簬琛ㄧず鍚湁澶ч噺瀵瑰簲鍙墦鍗板瓧絎︾殑鏁扮粍錛岃繖縐嶇紪鐮佹柟寮忎嬌瀛楃鍗曞厓鍦ㄤ紶杈撹繃紼嬩腑琚洿鏀圭殑鍙兘鎬у緢灝忋傚鏋滄鍦ㄧ紪鐮佺殑鏁版嵁澶ч儴鍒嗘槸ASCII鏂囨湰錛岄偅涔堢紪鐮佸悗鐨勫艦寮忓叿鏈夊緢楂樼殑鍙鎬с備竴涓畬鍏ㄦ槸ASCII鍊肩殑姝f枃鏁版嵁鐢?/span>QP緙栫爜鍚庡彲浠ヤ繚璇佹暟鎹湪瀛楃緲昏瘧鎴栫粡鐢辯綉鍏蟲(chóng)椂鏁版嵁鐨勫畬鏁存с?/span>

       緙栫爜瑙勫垯濡備笅錛?/span>

       瑙勫垯1錛?/span>(涓鑸?/span>8浣嶇粍鐨勮〃紺烘柟寮?/span>), 浠諱綍鐨勫叓浣嶇粍錛岄兘鍙互鐢?/span>”=”鍚庡姞璇ュ叓浣嶇粍鐨?/span>16榪涘埗鍊兼潵琛ㄧず錛岄櫎浜?jiǎn)閭d簺鏍规嵁鏁版嵁缂栫爜瑙勮寖涓柊琛岀殑鎯緥鏉ユ寚瀹氱煭琛岀殑琛ńC哄崟浣嶃傚繀欏葷敤澶у啓瀛楁瘝銆傛瘮濡傚兼槸12 錛屽垯琛ㄧず涓?/span>”=0C”銆?/span>

       瑙勫垯2錛?/span>(鏂囧瓧琛ㄧず)鍊煎湪33-60 錛屼互鍙?/span>62-126鐨勫叓浣嶇粍(鍖呭惈澶村熬鍊?/span>)錛屽彲浠ヨ〃紺烘垚閭d簺鍏綅緇勫搴旂殑ASCII瀛楃銆?/span>

       瑙勫垯3錛?/span>(絀烘牸) 鍊兼槸9鍜?/span>32鐨勫叓浣嶇粍鍙互鍒嗗埆琛ㄧず涓?/span>ASCII 鐨?/span>TAB鍜?/span>SPACE鍊鹼紝浣嗘槸涓嶅彲浠ュ嚭鐜板湪緙栫爜琛岀殑鏈熬銆備換浣曞湪緙栫爜琛岀殑TAB鎴?/span>SPACE瀛楃蹇呴』鍚庨潰鏈夊彲鎵撳嵃瀛楃鍑虹幇銆傜壒孌婃儏鍐典笅錛岀紪鐮佽鐨勬湯灝懼嚭鐜扮殑”=”錛岃〃紺烘柇琛岋紝鍏跺墠闈㈠彲鑳芥槸涓涓垨澶氫釜TAB鎴?/span>SPACE銆?/span> 瀹炶榪欐潯瑙勫垯鐨勫師鍥犳槸涓浜?/span>METs(Message Transport Agents-娑堟伅浼犺緭鍗曞厓)浼?xì)鍦ㄦ枃鏈湯灏捐ˉ涓?/span>SPACE錛屽洜姝わ紝瑙g爜鏃訛紝浠諱綍璺熷湪琛屽悗鐨勭┖鏍煎繀欏誨垹闄ゃ?/span>

       瑙勫垯4錛?/span>(鏂)鍦ㄥ師鏂囦腑鐨勬柇琛屽繀欏昏〃紺烘垚鍗忚涓殑鏂絎?/span>-CRLF搴忓垪錛?/span>"=0D=0A” 錛?/span>銆傜敱浜庨潪鏂囨湰綾誨瀷鐨勮鑼冭〃紺轟竴鑸笉鍖呮嫭鏂錛屾墍浠ヨ繖縐嶇被鍨嬬殑qp緙栫爜娌℃湁紜崲琛屻傞氬父錛?/span>base64緙栫爜鍦ㄤ簩榪涘埗緙栫爜涓婃洿鍗犱紭鍔褲?/span>

       瑙勫垯5錛?/span>(杞崲琛?/span>)QP緙栫爜瑕佹眰緙栫爜鍚庢瘡琛屼笉鑳借秴榪?/span>76涓瓧絎︺傚綋瓚呰繃榪欎釜闄愬埗鏃訛紝灝嗛傜敤杞崲琛岋紝鐢?/span>”=”琛ㄧず緙栫爜琛岀殑鏂錛屽悗鎺?/span>CRLF銆傦紙76鐨勯檺鍒跺寘鎷?/span>”=”錛夈?/span>

      



(Leyn)欏戒富 2008-11-20 21:46 鍙戣〃璇勮
]]>
Base 64 緙栫爜璇存槑http://m.shnenglu.com/yearner/archive/2008/11/20/67418.html(Leyn)欏戒富(Leyn)欏戒富Thu, 20 Nov 2008 13:45:00 GMThttp://m.shnenglu.com/yearner/archive/2008/11/20/67418.htmlhttp://m.shnenglu.com/yearner/comments/67418.htmlhttp://m.shnenglu.com/yearner/archive/2008/11/20/67418.html#Feedback0http://m.shnenglu.com/yearner/comments/commentRss/67418.htmlhttp://m.shnenglu.com/yearner/services/trackbacks/67418.html闃呰鍏ㄦ枃

(Leyn)欏戒富 2008-11-20 21:45 鍙戣〃璇勮
]]>
MIME閭歡鏍煎紡璇存槑http://m.shnenglu.com/yearner/archive/2008/11/20/67417.html(Leyn)欏戒富(Leyn)欏戒富Thu, 20 Nov 2008 13:44:00 GMThttp://m.shnenglu.com/yearner/archive/2008/11/20/67417.htmlhttp://m.shnenglu.com/yearner/comments/67417.htmlhttp://m.shnenglu.com/yearner/archive/2008/11/20/67417.html#Feedback0http://m.shnenglu.com/yearner/comments/commentRss/67417.htmlhttp://m.shnenglu.com/yearner/services/trackbacks/67417.html闃呰鍏ㄦ枃

(Leyn)欏戒富 2008-11-20 21:44 鍙戣〃璇勮
]]>
[杞?]嫻呰皥C++鐨勬櫤鑳芥寚閽?http://m.shnenglu.com/yearner/archive/2008/11/09/66447.html(Leyn)欏戒富(Leyn)欏戒富Sun, 09 Nov 2008 12:43:00 GMThttp://m.shnenglu.com/yearner/archive/2008/11/09/66447.htmlhttp://m.shnenglu.com/yearner/comments/66447.htmlhttp://m.shnenglu.com/yearner/archive/2008/11/09/66447.html#Feedback0http://m.shnenglu.com/yearner/comments/commentRss/66447.htmlhttp://m.shnenglu.com/yearner/services/trackbacks/66447.html嫻呰皥C++鐨勬櫤鑳芥寚閽?/h1>
鍐呭瓨娉勯湶鏄疌++紼嬪簭鍛橀兘澶寸柤鐨勫ぇ闂銆侰++緙轟箯鍍廕AVA銆丆#涓鏍鳳紝鎷ユ湁GC榪欎箞涓欏規(guī)湁鍒╃殑姝﹀櫒錛屽畠?yōu)畣鍐呭瓨绠$悊鐨勯儴鍒?span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=鏉冮檺',this.id)" style="border-bottom: 1px solid #fa891b; cursor: pointer;" id="rlt_2">鏉冮檺浜ょ粰浜?jiǎn)绋嬪簭鍛樸傝櫧鐒禛C鐨勫瓨鍦ㄨ妭綰︿簡(jiǎn)寮鍙戙佹帓閿欑殑鏃墮棿涓庢垚鏈紝浣嗘槸C++涓轟簡(jiǎn)榪芥眰榪愯閫熷害鑰?0騫存潵鍧氬喅涓嶄簣琛ュ厖榪涘叾鏍囧噯銆傦紙棰樺璇濓細(xì)C++閫氳繃鍔犲ぇ寮鍙戦毦搴﹀幓鎹㈠彇鎵ц閫熷害鐨勫仛娉曪紝鍦ㄧ幇鍦ㄧ湅鏉ヤ笉鐭ユ槸鍚﹁兘緇欎笌姝i潰鐨勮瘎浠鳳紝榪樻槸鐣欑粰灝嗘潵鍐嶈鍚с傦級(jí)

  浠庢錛屽湪鍫嗕笂鐢寵浜?jiǎn)鍐呭瓨蹇樹(shù)簡(jiǎn)閲婃斁銆佹墍閫犳垚鐨勫唴瀛樻硠闇茬殑闂灝變竴鐩村洶鎵扮潃C++紼嬪簭鍛樸備篃璁鎬負(fù)浜?jiǎn)绋嶈遄I琛ユ病鏈夊瀮鍦懼洖鏀跺櫒鎵閫犳垚鐨勫紑鍙戦棬妲涢珮錛屽悇澶у巶鍟嗗紑鍙戠殑C++搴撲腑閮藉儚COM瀛︿範(fàn)寮曞叆鏅鴻兘鎸囬拡璇曞浘瑙e喅閮ㄥ垎鐩墠瀛樺湪鐨勯棶棰樸?br>
  鏅鴻兘鎸囬拡鏄瓨鍌ㄦ寚鍚戝姩鎬佸垎閰嶏紙鍫嗭級(jí)瀵硅薄鎸囬拡鐨勭被, 鐢ㄤ簬鐢熷瓨鏈熸帶鍒? 鑳藉紜繚鑷姩姝g‘鐨勯攢姣佸姩鎬佸垎閰嶇殑瀵硅薄錛岄槻姝㈠唴瀛樻硠闇層傚畠鐨勪竴縐嶉氱敤瀹炵幇鎶鏈槸浣跨敤寮曠敤璁℃暟(reference count)銆傛櫤鑳芥寚閽堢被灝嗕竴涓鏁板櫒涓庣被鎸囧悜鐨勫璞$浉鍏寵仈錛屽紩鐢ㄨ鏁拌窡韙綾繪湁澶氬皯涓璞″叡浜悓涓鎸囬拡銆傛瘡嬈″垱寤虹被鐨勬柊瀵硅薄鏃訛紝鍒濆鍖栨寚閽堝茍灝嗗紩鐢ㄨ鏁? 緗負(fù)1錛涘綋瀵硅薄浣滀負(fù)鍙︿竴瀵硅薄鐨勫壇鏈屽垱寤烘椂錛屾嫹璐濇瀯閫犲嚱鏁版嫹璐濇寚閽堝茍澧炲姞涓庝箣鐩稿簲鐨勫紩鐢ㄨ鏁幫紱瀵逛竴涓璞¤繘琛岃祴鍊兼椂錛岃祴鍊兼搷浣滅鍑忓皯宸︽搷浣滄暟鎵鎸囧璞$殑寮? 鐢ㄨ鏁幫紙濡傛灉寮曠敤璁℃暟涓哄噺鑷?錛屽垯鍒犻櫎瀵硅薄錛夛紝騫跺鍔犲彸鎿嶄綔鏁版墍鎸囧璞$殑寮曠敤璁℃暟錛涜皟鐢ㄦ瀽鏋勫嚱鏁版椂錛屾瀯閫犲嚱鏁板噺灝戝紩鐢ㄨ鏁幫紙濡傛灉寮曠敤璁℃暟鍑忚嚦0錛屽垯鍒犻櫎鍩? 紜瀵硅薄錛夈?br>
  璇村埌鏅鴻兘鎸囬拡錛屾垜浠竴瀹氳鐪嬬湅鏍囧噯C++搴撴彁渚涚殑“鎼炵瑧鐨?#8221;鏅鴻兘鎸囬拡:auto_ptr銆?br>
  鏍囧噯搴撲腑鎻愪緵浜?jiǎn)C++紼嬪簭鐨勫熀鏈鏂姐傝櫧鐒禖++鏍囧噯搴撻殢鐫C++鏍囧噯鎶樿吘浜?jiǎn)璁稿骞村Q岀洿鍒版爣鍑嗙殑鍑哄彴鎵嶆寮忓畾鍨嬶紝緗戜笂璇勮C++鏍囧噯搴撴椂閮借錛?#8220;鍦ㄦ爣鍑嗗簱 鐨勫疄鐜頒笂鍗村緢浠や漢嬈f叞寰楃湅鍒板縐嶅疄鐜幫紝騫朵笖宸茶瀹炶返璇佹槑涓烘湁宸ヤ笟綰у埆寮哄害鐨勪匠浣溿?#8221;浣嗙洰鍓嶇殑鏍囧噯C++涓紝鍙湁涓縐嶇嫭鑻楁櫤鑳芥寚 閽堬細(xì)std::auto_ptr銆?br>
  auto_ptr鎸囬拡鏄竴涓猂AII瀵硅薄,瀹冨垵濮嬪寲鏃惰幏寰楄祫婧?鏋愭瀯鏃惰嚜鍔ㄩ噴鏀捐祫婧?鐢熷懡鏈熺粨鏉?.瀹冪殑緙虹偣鏁頒笉鑳滄暟錛?br> 1銆乤uto_ptr瑕佹眰涓涓璞″彧鑳芥湁涓涓嫢鏈夎咃紝涓ョ涓鐗╀簩涓?br> 2銆佺己灝戝寮曠敤鏁板拰鏁扮粍鐨勬敮鎸併?br> 3銆佷笉鍙皢auto_ptr瀵硅薄浣滀負(fù)STL瀹瑰櫒鐨勫厓绱犮侰++鏍囧噯鏄庣‘紱佹榪欐牱鍋氾紝鍚﹀垯鍙兘浼?xì)纰板堫C笉鍙瑙佺殑緇撴灉銆傦紙榪欎竴鏉℃檿姝諱竴澶х墖錛夈?br>4銆乤uto_ptr鍦ㄨ澶嶅埗鐨勬椂鍊欎細(xì)浼犺緭鎵鏈夋潈

鍙嶆鐢辨鍙錛氭爣鍑嗗簱鐨勬櫤鑳芥寚閽堝氨鏄棤鐢氬ぇ鐢ㄣ?br>
    鍦ㄨ繖鏍風(fēng)殑鎯呭喌涓嬶紝C++鏍囧噯濮斿憳?shù)細(xì)鑷剦櫆瑕佽冭檻寮曞叆鏂扮殑鏅鴻兘鎸囬拡銆傜洰鍓嶇敱C++鏍囧噯濮斿憳?shù)細(xì)搴撳伐浣溇l勫彂璧風(fēng)殑Boost 緇勭粐寮鍙戜簡(jiǎn)Boost緋誨垪鏅鴻兘鎸囬拡銆?br>
  鍦˙oost涓殑鏅鴻兘鎸囬拡鏈変簲縐嶏細(xì) scoped_ptr錛宻coped_array錛宻hared_ptr錛宻hared_array錛寃eak_ptr.

鍓?縐嶅畬鍏ㄦ槸閽堝鏍囧噯搴撲腑鐨刟uto_ptr鎻愬嚭瑙e喅鏂規(guī)錛屽錛歴cope_ptr鏄拡瀵?#8220;auto_ptr鍦ㄨ澶嶅埗鐨勬椂鍊欎細(xì)浼犺緭鎵鏈夋潈”榪欎竴寮辯偣鎻愬嚭鐨勩傛渶鍚庝竴縐嶆病瑙佽繃錛岀湅鍚嶅瓧鍍忔槸寮卞紩鐢ㄦ櫤鑳芥寚閽堬紝鎴戞鐤?span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=鏄笉鏄?,this.id)" style="border-bottom: 1px solid #fa891b; cursor: pointer;" id="rlt_3">鏄笉鏄?/span>綾諱技浜嶫AVA涓急寮曠敤涓鏍?鏈夊緟榪涗竴姝ュ涔?fàn)銆?/div>

]]>[杞琞C++涓殑鎸囬拡--鏅鴻兘鎸囬拡http://m.shnenglu.com/yearner/archive/2008/11/09/66445.html(Leyn)欏戒富(Leyn)欏戒富Sun, 09 Nov 2008 12:37:00 GMThttp://m.shnenglu.com/yearner/archive/2008/11/09/66445.htmlhttp://m.shnenglu.com/yearner/comments/66445.htmlhttp://m.shnenglu.com/yearner/archive/2008/11/09/66445.html#Feedback0http://m.shnenglu.com/yearner/comments/commentRss/66445.htmlhttp://m.shnenglu.com/yearner/services/trackbacks/66445.htmlSmart Pointer鏄?a class="channel_keylink">C++涓殑涓涓ぇ棰樼洰錛岃璇存竻妤氫粬鐨勬墍鏈夊ソ澶勫緢闇瑕佽垂鐐瑰姏姘斻傛垜灝變竴涓姛鑳戒竴涓姛鑳界殑璇淬傛湁鎴戠悊瑙d笉閫忕殑鍦版柟甯屾湜澶у鎸囩偣銆?br>
1.copy-to-write
褰撶敓鎴愪竴涓?a class="channel_keylink">C++ object鐨勬椂鍊欏鏋滆繖涓猚lass寰堝ぇ錛岃繖涓猳bject浼?xì)鍗犵敤寰堝绌洪棿銆傞偅涔堟瘡鐢熸垚涓涓氨鍗犵敤涓鐗囩┖闂達(dá)紝榪欐牱浼?xì)鍗犵敤寰堝绯痪l熻祫婧愩傚悓鏃墮檷浣庢晥鐜囥備竴涓В鍐蟲(chóng)柟娉曞氨鏄鐢ㄦ嫹璐濇瀯閫?a class="channel_keylink">鍑芥暟鐢熸垚鐨刼bject錛岃浠栦笉瀛樺偍鏁版嵁錛岃屽彧瀛樺偍涓涓寚鍚戝師鏉bject鏁版嵁鐨?a class="channel_keylink">鎸囬拡銆?榪欐牱絀洪棿灝辮妭鐪佷簡(jiǎn)寰堝銆備絾闂鍦ㄤ簬榪欐牱涓や釜object瀹屽叏鑱旂粨鍦ㄤ簡(jiǎn)涓璧楓傚鏋滀慨鏀逛簡(jiǎn)鍏朵腑涓涓紝鍙︿竴涓篃璺熺潃鍙樹(shù)簡(jiǎn)銆傛墍浠ヨ繖縐嶆柟娉曚笉鍙彇銆傝繖閲岃鐨?copy-to-write鎶鏈氨鏄В鍐寵繖綾婚棶棰樼殑鏂規(guī)硶銆傚綋閫氳繃寮曠敤涓涓凡鏈塷bject鍘繪嫹璐濇瀯閫犳柊object鏃訛紝鏂皁bject鍙湁涓涓寚鍚戝凡鏈?object鐨?a class="channel_keylink">鎸囬拡銆? 榪欎袱涓猳bject鍏變韓鏁版嵁銆傜洿鍒板叾涓竴涓渶瑕佷慨鏀規(guī)暟鎹殑鏃跺欙紝鍐嶆妸榪欎袱鍧楁暟鎹垎紱匯傝繖閲屼婦涓涓渶綆鍖栫殑渚嬪瓙銆傚亣璁句竴涓猚lass鍙? CLargeObject錛岄噷闈㈠瓨鏈夊緢澶氭暟鎹傛垜浠敤涓涓猧nner class鏉ユ妸鎵鏈夋暟鎹斁鍦ㄤ竴璧鳳紝鍙獵Data銆侰Data閲岄潰瀛樻湁澶ч噺鏁版嵁錛屼緥濡備竴涓?a class="channel_keylink">鏁版嵁搴?/a>銆傝繖閲岀敤鏈綆鍗曠殑妯″瀷鏉ヨ〃紺猴紝鍋囪鍙湁涓涓暣鏁癷nt m_nVal; CData閲岄潰闇瑕佸寘鍚彟涓涓彉閲忋傚彨浣滅儲(chǔ)寮曟暟鐩?reference count)銆傚畠璁板綍浜?jiǎn)鎸囧悜杩欎釜CData object鐨勬潵鑷狢LargetObject綾葷殑鎸囬拡鍚勬暟銆備篃灝辨槸璇達(dá)紝鎬誨叡鏈夊灝慍LargeObject鐨刼bject姝e湪寮曠敤鐫褰撳墠鐨凜Data object銆?br>
class CLargeObject
{
private:
    struct CData
    {
    private:
        int m_nVal;
        int m_nReferenceCount;
    }
};

瀵逛簬姣忎釜CLargeObject鐨刼bject錛屾垜浠敤涓涓狢Data綾葷殑鎸囬拡鏉ユ寚鍚戝叾鏁版嵁銆?br>CData *m_pData;

CLargeObject鑷沖皯鏈変袱涓瀯閫?a class="channel_keylink">鍑芥暟銆傜涓涓槸鏍囧噯鐨勬瀯閫?a class="channel_keylink">鍑芥暟錛屽垵濮嬪寲鍏舵暟鎹傝繖鏃舵暟鎹槸鍞竴鐨勶紝鎵浠ュ繀欏繪柊鐢熸垚涓涓狢Data鐨刼bject鏉ュ瓨鍌ㄦ暟鎹?br>CLargeObject::CLargeObject(int nVal)
{
    m_pData = new Data(nVal);
}
鑰屽浜嶤Data綾葷殑鏋勯?a class="channel_keylink">鍑芥暟鑰岃█錛屽垵濮嬪寲浠栫殑CLargeObject鏄涓涓寚鍚戜粬鐨勶紝榪欎竴鏃跺埢绱㈠紩鏁扮洰m_nReferenceCount鏄?銆?br>CLargeObject::Data::Data(int nVal) : m_nVal(nVal), m_nReferenceCount(1) {}

CLargeObject鐨勭浜屼釜鏋勯?a class="channel_keylink">鍑芥暟鏄嫹璐濇瀯閫?copy constructor)銆傝繖鏍風(fēng)敓鎴愮殑object涓嶉渶瑕佹湁鏂扮殑鏁版嵁錛屽拰宸叉湁鐨刼bject鍏變韓鏁版嵁灝卞彲浠ヤ簡(jiǎn)銆傝繖鏄儲(chǔ)寮曟暟鐩渶瑕佸姞1銆傝〃紺哄張鏈変竴涓猳bject鎸囧悜褰撳墠鐨凜Data浜?jiǎn)銆?br>CLargeObject::CLargeObject(const CLargeObject &ob) // copy constructor
{
    ob.m_pData->m_nReferenceCount++;
    m_pData = ob.m_pData;
}


榪欐牱CLargeObject灝辨瀯閫犲ソ浜?jiǎn)锛屼娇鐢ㄤ簡(jiǎn)鍙兘鐨勬渶灝戠殑鍐呭瓨銆備笅闈㈢湅鐪嬩粬鐨勬瀽澶?a class="channel_keylink">鍑芥暟(destructor)銆傚綋涓涓猳bject琚玠elete鐨勬椂鍊欙紝瀹冪殑鏁版嵁涓嶄竴瀹氭棤鏁堬紝濡傛灉鍒殑object榪樺湪寮曠敤鐫榪欎釜鏁版嵁錛屾暟鎹渶瑕佺暀涓嬫潵銆傚綋鐒?dòng)灱屾暟鎹殑鐑?chǔ)寮曟暟鐩棤璁哄浣曢兘瑕佸噺1銆?br>CLargeObject::~CLargeObject()
{
    if (--m_pData->m_nReferenceCount == 0)
        delete m_pData;
}

涓嬮潰鐪嬩竴鐪嬭祴鍊兼搷浣溿傚厛璇寸敤宸叉湁鐨凜LargeObject璧嬪肩粰榪欎釜CLargeObject銆傝繖鏃跺綋鍓岰LargeObject閲岄潰鐨勬暟鎹鎸囧悜宸叉湁鐨勮繖涓猳bject錛屽氨鎼炲畾浜?jiǎn)銆?br>CLargeObject& CLargeObject::operator = (const CLargeObject& ob)    // copy assignment
{
    ob.m_pData->m_nReferenceCount++;
    if (--m_pData->m_nReferenceCount == 0)
        delete m_pData;
    m_pData = ob.m_pData;

    return *this;
}

鍐嶆潵鐪嬬湅濡備綍瀵笴LargeObject閲岄潰鐨勬暟鎹繘琛岀湡姝g殑淇敼銆傝繖鏍峰氨涓瀹氶渶瑕佸褰撳墠鐨刼bject鐙珛鎿嶄綔浜?jiǎn)锛屽惁鍒櫈濯?jiǎng)鍝嶅埌浜?jiǎn)鍏跺畠鎸囧悜鍚屼竴鍧楁暟鎹殑CLargeObject銆傝繖鏍稢Data綾婚渶瑕佷竴涓柊鐨?a class="channel_keylink">鍑芥暟錛岀敓鎴愬彧鐢ㄤ簬褰撳墠CLargetObject鐨勬暟鎹傚鏋滃綋鍓嶇殑寮曠敤鏁扮洰鏄?錛岄偅涔堝綋鐒惰繖涓狢Data灝辨槸鍙敤浜庤繖涓狢LargeObject鐨勪簡(jiǎn)銆傚惁鍒欏氨閲嶆柊new涓涓狢Data榪斿洖銆?br>        Data* CLargeObject::CData::get_own_copy()    // clone if necessary
        {
            if (m_nReferenceCount==1)
                return this;
            m_nReferenceCount--;
            return new Data(m_nVal);
        }
CLargeObject淇敼鍓嶇敤榪欎釜鍑芥暟寰楀埌鍞竴鐨刼bject錛岀劧鍚庡瀹冭祴鍊箋?br>void CLargeObject::SetVal(int nNewVal)
{
    m_pData = m_pData->get_own_copy();
    m_pData->m_nVal = nNewVal;
}
瀵逛簬鎵鏈夊彲鑳芥敼鍙楥Data鍊肩殑鎿嶄綔錛岄兘闇瑕佺敤榪欑鏂規(guī)硶銆?br>
涓嬮潰鏄彧璇?a class="channel_keylink">鍑芥暟錛岀畝鍗曘傜洿鎺ヨ繑鍥炲鹼紝浠涔堢壒孌婄殑閮戒笉鐢ㄤ綔銆?br>int CLargeObject::GetVal() const
{
    return m_pData->m_nVal;
}


榪欐牱copy-to-write鎶鏈氨瀹炵幇浜?jiǎn)銆備笅闈㈡妸瀹屾暣鐨勭▼搴忓啓涓涓嬶細(xì)
class CLargeObject
{
public:
    CLargeObject(int nVal);
    CLargeObject(const CLargeObject &ob);
    ~CLargeObject();

    CLargeObject& operator = (const CLargeObject& ob);
    void SetVal(int nNewVal);
    int GetVal() const;
private:
    struct Data
    {
    public:
        Data(int nVal) : m_nVal(nVal), m_nReferenceCount(1) {}
    private:
        friend class CLargeObject;
        Data* get_own_copy()    // clone if necessary
        {
            if (m_nReferenceCount==1)
                return this;
            m_nReferenceCount--;
            return new Data(m_nVal);
        }

        // control variables.
        int m_nReferenceCount;
    
        // actual data portion
        int m_nVal;
    };

    Data *m_pData;
};

CLargeObject::CLargeObject(int nVal)
{
    m_pData = new Data(nVal);
}

CLargeObject::CLargeObject(const CLargeObject &ob) // copy constructor
{
    ob.m_pData->m_nReferenceCount++;
    m_pData = ob.m_pData;
}

CLargeObject::~CLargeObject()
{
    if (--m_pData->m_nReferenceCount == 0)
        delete m_pData;
}

CLargeObject& CLargeObject::operator = (const CLargeObject& ob)    // copy assignment
{
    ob.m_pData->m_nReferenceCount++;
    if (--m_pData->m_nReferenceCount == 0)
        delete m_pData;
    m_pData = ob.m_pData;

    return *this;
}

void CLargeObject::SetVal(int nNewVal)
{
    m_pData = m_pData->get_own_copy();
    m_pData->m_nVal = nNewVal;
}

int CLargeObject::GetVal() const
{
    return m_pData->m_nVal;
}


寰堝瀛樺偍鏁版嵁鐨勭郴緇焎lass錛屽string錛孋String絳夐兘鏈夎繖縐嶈璁°傛墍浠ヨ浣忚繖涓簲鐢ㄦ槸寰堟湁蹇呰鐨勩?/p>

]]>
[杞琞鍒╃敤Rational Rose榪涜C++浠g爜鍜屾暟鎹簱緇撴瀯鍒嗘瀽http://m.shnenglu.com/yearner/archive/2008/10/28/65350.html(Leyn)欏戒富(Leyn)欏戒富Tue, 28 Oct 2008 09:36:00 GMThttp://m.shnenglu.com/yearner/archive/2008/10/28/65350.htmlhttp://m.shnenglu.com/yearner/comments/65350.htmlhttp://m.shnenglu.com/yearner/archive/2008/10/28/65350.html#Feedback1http://m.shnenglu.com/yearner/comments/commentRss/65350.htmlhttp://m.shnenglu.com/yearner/services/trackbacks/65350.html 鍒╃敤Rational Rose榪涜C++浠g爜鍜屾暟鎹簱緇撴瀯鍒嗘瀽
鐢?闇囨澃, IBM 涓浗杞歡寮鍙戜腑蹇?jī)枋Y浠跺伐紼嬪笀

鏈枃鍐呭鍖呮嫭:
涓錛嶳ational Rose閫嗗悜宸ョ▼浠嬬粛
浜岋紟濡備綍鐢≧ational Rose榪涜C++浠g爜鍒嗘瀽
涓夛紟濡備綍鐢≧ational Rose榪涜鏁版嵁搴撶粨鏋勫垎鏋?/font>
鍥涳紟濡備綍寰楀埌閫嗗悜宸ョ▼鐨勬ā鍨嬪浘
浜旓紟鎬葷粨
娉ㄩ噴

銆Rational Rose鏄埄鐢║ML錛堢粺涓寤烘ā璇█錛夎繘琛屽垎鏋愬拰璁捐闈㈠悜瀵硅薄杞歡緋葷粺鐨勫己澶х殑鍙鍖栧伐鍏鳳紝鍙互榪涜欏圭洰闇姹傚垎鏋愩佺粨鏋勮鍒掑拰鐢熸垚妗嗘灦浠g爜錛岃繕鍙互鏀寔浠庣幇鏈夌郴緇熼嗗悜杞嚭宸ョ▼浠g爜錛岀敓鎴怰ose妯″瀷鐨勫姛鑳姐?br>2004騫?0鏈堬紝IBM鎺ㄥ嚭浜?jiǎn)鏀寔鏈鏂扮殑UML2.0鐨勫彲瑙嗗寲寤烘ā宸ュ叿 Rational Software Architect錛堣娉ㄩ噴鈶狅級(jí) 鍜孖BM Rational Software Modeler錛堣娉ㄩ噴鈶★級(jí)銆傝櫧鐒跺畠浠敮鎸佸湪寤烘ā鍔熻兘涓婃湁浜?jiǎn)鏇村ソ鐨勬敼杩涖佹敮鎸佷簡(jiǎn)鏇存柊鐨勬爣鍑嗭紝浣嗘槸RSA鐨勭簿褰╁姛鑳戒富瑕佹槸闆嗕腑鍦ㄥJava搴旂敤鐨勬敮鎸侊紝鑰孖BM Rational Software Modeler鍒欐槸涓昏鍏蟲(chóng)敞緋葷粺鐨勬ā鍨嬭璁★紝濡傛灉瑕佷粠緇撴瀯涓婂垎鏋怌++緙栧啓鐨勭郴緇熺殑浠g爜錛孯ational Rose榪樻槸棣栭夌殑宸ュ叿銆?/p>

鎺ヤ笅鏉ョ殑鏂囩珷灝嗕細(xì)瀵瑰浣曞埄鐢≧ational Rose 鐨勯嗗悜杞嚭宸ョ▼鏉ヨ繘琛岀郴緇熷垎鏋愯繘琛屾洿鍔犺緇嗗湴闃愯堪銆?/p>

涓錛嶳ational Rose閫嗗悜宸ョ▼浠嬬粛

閫嗗悜宸ョ▼錛圧everse Engineer錛夊氨鏄粠鐜版湁緋葷粺鐨勪唬鐮佹潵鐢熸垚妯″瀷鐨勫姛鑳姐傚垎鏋愬凡鏈夌殑浠g爜鍏朵富瑕佺殑鐩殑灝辨槸浜?jiǎn)瑙d唬鐮伨l撴瀯鍜屾暟鎹粨鏋勶紝榪欎簺瀵瑰簲鍒版ā鍨嬪浘灝辨槸綾誨浘銆佹暟鎹ā鍨嬪浘鍜岀粍浠跺浘錛堝UML鍚勭妯″瀷鍥劇殑鎻忚堪瑙佹敞閲娾憿錛夛紝涔熷氨鏄氳繃Rational Rose鐨勯嗗悜宸ョ▼鎵寰楀埌鐨勭粨鏋溿俁ational Rose鎵鏀寔鐨勯嗗悜宸ョ▼鍔熻兘寰堝己澶э紝鍖呮嫭鐨勭紪紼嬭璦鏈塁++, VB, VC, Java, CORBA錛屼互鍙?qiáng)鏁版嵁搴揇DL鑴氭湰絳夌瓑錛屽茍涓斿彲浠ョ洿鎺ヨ繛鎺B2, SQLServer, Oracle鍜孲ybase絳夋暟鎹簱瀵煎叆Schema騫剁敓鎴愭暟鎹ā鍨嬨?/p>

寰堝澶у瀷鐨凜++寮鍙戠殑浜у搧閮芥秹鍙?qiáng)鍒版暟鎹簱鐨勪娇鐢ㄥQ屽榪欑澶у瀷緋葷粺鐨勫紑鍙戯紝灝ゅ叾鏄仛浜屾寮鍙戠殑鎯呭喌涓嬶紝涓昏鐨勯毦鐐瑰氨鏄婧愮爜鍜屾暟鎹簱緇撴瀯鐨勫垎鏋愩傝屽埄鐢≧ose鐨勯嗗悜宸ョ▼榪欎竴鍔熻兘錛屽氨鍙互瀹屾垚浠g爜'綾誨浘浠ュ強(qiáng)鏁版嵁搴揝chema->鏁版嵁妯″瀷鍥劇殑杞崲錛岃В鍐寵繖涓ゅぇ闅劇偣錛屽彲浠ヤ嬌寮鍙戝拰璁捐浜哄憳鍦ㄥ榪欑澶у瀷緋葷粺鐨勫崌綰с佸垎鏋愬拰寮鍙戜腑錛屾洿涓烘柟渚褲佸揩鎹楓佹湁鏉$悊鍦版帉鎻$郴緇熺粨鏋勶紝涓嶇敤鍐嶄負(fù)鍒嗘瀽搴炲ぇ鐨勭郴緇熺粨鏋勮屽ご鐤箋?/p>

浜岋紟濡備綍鐢≧ational Rose榪涜C++浠g爜鍒嗘瀽

榪欎竴鑺備富瑕佷粙緇嶇敤鎴峰浣曚嬌鐢≧ose鐨勯嗗悜宸ョ▼鐢熸垚UML妯″瀷錛屽茍鐢ㄦ潵榪涜C++浠g爜鐨勭粨鏋勫垎鏋愩?/p>

Rational Rose鍙互鏀寔鏍囧噯C++鍜孷isual C++鐨勬ā鍨嬪埌浠g爜鐨勮漿鎹互鍙?qiáng)閫嗗悜宸ョ▼銆備笅闈㈠皢璇︾粏鍦拌鏄庤繖涓ょC++ project鐨勯嗗悜宸ョ▼鐨勬楠ゅ拰鍏蜂綋鎿嶄綔銆?/p>

1錛?ANSI C++錛堟爣鍑咰++錛夐嗗悜宸ョ▼錛圧everse Engineer錛変嬌鐢ㄦ爣鍑咰++閫嗗悜宸ョ▼錛岄渶瑕佸湪緇勪歡鍥撅紙component view錛変腑鍒涘緩涓涓粍浠訛紙component錛夛紝璁劇疆濂介渶瑕佽繘琛岃漿鎹㈢殑緇勪歡鐨勪俊鎭紝涔熷氨鏄緇勪歡鐨勮璦銆佹墍鍖呭惈鐨勬枃浠躲佹枃浠舵墍鍦ㄧ殑璺緞銆佹枃浠跺悗緙絳夌瓑淇℃伅錛岀劧鍚嶳everse Engineer灝卞彲浠ユ牴鎹粰瀹氱殑淇℃伅灝嗕唬鐮佽漿鎹㈡垚綾誨浘浜?jiǎn)銆?/p>

a) 鍙抽敭鐐瑰嚮緇勪歡瑙嗗浘錛圕omponent View錛夛紝閫夋嫨New->Component錛屽垱寤轟竴涓柊鐨勭粍浠?br>銆

銆b) 灝哻omponent鐨刲anguage灞炴ц瀹氫負(fù)ANSI C++

鈶犻変腑鍒涘緩鐨刢omponent錛岀偣鍑誨彸閿紝閫変腑Open Specification

鈶″湪榪欎釜瀵硅瘽妗嗕腑灝嗚component鐨刲anguage璁懼畾涓篈NSI C++


c) 閰嶇疆璇NSI C++ component錛岃緗ソ璇omponent涓寘鍚殑C++浠g爜鏂囦歡錛屽茍榪涜C++璇█鐨勮緇嗚緗?/p>

鈶犻変腑璇omponent錛岀偣鍑誨彸閿紝閫夋嫨ANSI C++->Open ANSI C++ Specification


鈶℃妸Source file root directory璁懼畾涓轟綘鐨凜++婧愮爜鏂囦歡鎵鍦ㄧ殑璺緞錛屽茍涓斿皢闇瑕佽漿鎹㈢殑鏂囦歡娣誨姞鍒癙roject Files涓紝瑙嗕綘鐨勯渶瑕佹潵鍋氬叾瀹冪殑璁懼畾錛屾瘮濡傦細(xì)澶存枃浠舵墿灞曞悕絳夌瓑銆?/p>

d) 灝嗚緗ソ鐨刢omponent杞崲鎴愭ā鍨嬪浘

鈶犻変腑璁劇疆濂界殑component錛岀偣鍑誨彸閿紝閫変腑ANSI C++->Reverse Engineer



銆鈶¢変腑闇瑕佽漿鎹㈢殑class錛岀偣鍑籵k錛屼竴涓猚omponent鐨勯嗗悜杞崲灝卞畬鎴愪簡(jiǎn)銆?/p>



銆2錛?Visual C++ 鍦ㄤ嬌鐢ㄨ繖涓姛鑳界殑鏃跺欙紝瑕佹眰鐢ㄦ埛鐨勬満鍣ㄤ笂鍚屾椂瀹夎Visual Studio銆俈isual C++鐨勯嗗悜宸ョ▼涔熼渶瑕侀鍏堝垱寤轟竴涓猚omponent錛屽茍灝嗚component鐨刲anguage灞炴ц緗負(fù)VC++銆俁ational Rose瀵筕C++妯″瀷鐨勮漿鎹㈡槸閫氳繃璇誨彇VC++ Project File鐨勪俊鎭潵瀹炵幇鐨勶紝鐢ㄦ埛鍙渶瑕佸皢瀵瑰簲鐨刾roject file淇℃伅鎸囧畾緇檆omponent灝卞彲浠ヤ簡(jiǎn)銆?/p>

a) 灝哣C++ Project鐨勪俊鎭祴緇欏垰鍒氬垱寤哄ソ鐨刢omponent銆?/p>

鈶犻夋嫨璇omponent錛岀偣鍑誨彸閿紝閫夋嫨Assign To Project


鈶″湪瀵硅瘽妗嗕腑鎵懼埌鍒氬垰鍒涘緩鐨刢omponent錛屽彸閿偣鍑誨茍閫夋嫨Properties銆?/p>


鈶㈠湪涓嬮潰瀵硅瘽妗嗕腑閫変腑闇瑕佽繘琛岃漿鎹㈢殑Project錛岀偣鍑籵k錛岃component灝變笌闇瑕佽漿鎹㈢殑project鍏寵仈涓婁簡(jiǎn)銆?/p>



銆b) 灝嗚緗ソ鐨刢omponent杞崲鎴愭ā鍨嬪浘

閫変腑璁劇疆濂界殑component錛岀偣鍑誨彸閿紝Update Model…錛屽皢浼?xì)寮瑰嚭纭瀵硅瘽妗嗗Q岄変腑闇瑕佽漿鎹㈢殑class錛岀偣鍑籪inish灝卞彲浠ヤ簡(jiǎn)銆?/p>


涓夛紟濡備綍鐢≧ational Rose榪涜鏁版嵁搴撶粨鏋勫垎鏋?/strong>

鍒╃敤Rational Rose鍙互榪涜鍏崇郴鏁版嵁搴撶殑鏁版嵁妯″瀷璁捐騫跺鍑篋DL璇█鑴氭湰錛岀浉鍙嶈繕鍙互瀵煎叆宸叉湁鐨凞DL鑴氭湰鐢熸垚鏁版嵁妯″瀷浠ュ強(qiáng)榪炴帴SQLServer, DB2, Oracle絳夋暟鎹簱騫跺鍏ユ暟鎹簱鐨剆chema鐢熸垚鏁版嵁妯″瀷銆?/p>

涓嬮潰浠QL Server涓轟緥璇存槑涓涓嬮嗗悜杞崲宸ョ▼鐨勬楠ゃ?/p>

a) 棣栧厛錛岄夋嫨Tools->Data Modeler-> Reverse Engineer



銆b) 鍦ㄨ繘琛岄嗗悜宸ョ▼杞崲鐨勮繃紼嬩腑鍙互閫夋嫨鏄粠鏁版嵁搴撹繕鏄疍DL鑴氭湰榪涜杞崲錛屽鏋滄槸DDL鑴氭湰杞崲錛屽氨鐩存帴緇欏畾DDL鑴氭湰鏂囦歡浣嶇疆灝卞彲浠ヤ簡(jiǎn)銆傛湰渚嬪瓙緇欏嚭鐨勬槸榪炴帴SQLServer鏁版嵁搴撳皢schema瀵煎叆鐢熸垚鏁版嵁妯″瀷鐨勮繃紼嬶紝鎵浠ラ変腑Database錛岃繘鍏ヤ笅涓姝ャ?/p>



銆c) 濉啓鏁版嵁搴撶浉鍏充俊鎭?/p>



銆d) 閫変腑鎵鏈夐渶瑕佽漿鎹㈢殑schema



銆e) 閫夋嫨闇瑕佸皢鍝簺鏁版嵁搴撲腑鐨勫厓绱犲鍏ュ埌鏁版嵁妯″瀷涓?br>

杞崲鎿嶄綔浼?xì)鑷姩鍦ňl勪歡鍥撅紙Component View錛変腑娣誨姞鏁版嵁搴撶粍浠訛紝騫跺湪閫昏緫鍥撅紙Logical View錛変腑鐢熸垚浠ャ奡chema銆嬩綔涓哄懡鍚嶅紑澶寸殑鏁版嵁妯″瀷銆?/p>



銆鎵撳紑鏁版嵁妯″瀷錛屽彲浠ョ湅鍒頒粠鏁版嵁搴撲腑杞崲榪囨潵鐨勫悇涓〃鍜岃鍥俱?/p>



銆浠庢暟鎹ā鍨嬪浘涓彲浠ョ湅鍒拌〃鐨勭粨鏋勪互鍙?qiáng)鍚勪釜琛ㄥ拰瑙嗗浘涔嬮棿鐨勯昏緫鍏崇郴銆?/p>

鍥涳紟濡備綍寰楀埌閫嗗悜宸ョ▼鐨勬ā鍨嬪浘

鍦≧ational Rose涓紝鏈変簺妯″瀷鍥炬槸涓嶄細(xì)鑷姩鐢熸垚鐨勶紝寰堝鏃跺欒繖涓伐浣滈渶瑕佺敤鎴鋒墜宸ユ潵瀹屾垚銆備篃灝辨槸璇達(dá)紝Rational Rose鍙礋璐g敓鎴愭ā鍨嬶紝鍖呮嫭妯″瀷涓殑鍏冪礌銆佸厓绱犵殑灞炴т互鍙?qiáng)鍚勪釜鍏冪礌涔嬮棿鐨勫叧绯诲Q屼絾鏄渶瑕佺敤鎴峰仛涓浜涢澶栫殑宸ヤ綔鏉ュ緱鍒拌鍥俱?/p>

棣栧厛錛岄氳繃閫嗗悜宸ョ▼錛岀敤鎴峰凡緇忓緱鍒頒簡(jiǎn)UML妯″瀷鎴栬呮暟鎹ā鍨嬬殑鍚勪釜緇勪歡浠ュ強(qiáng)瀹冧滑涔嬮棿鐨勫叧緋匯?涓嬩竴姝ラ渶瑕佸湪璇ユā鍨嬩笂鍒涘緩涓涓鍥撅紝瀹冧滑鍙互鏄被鍥撅紙class diagram錛屾弿榪扮郴緇熺殑闈?rùn)鎬佺粨鏋勶級(jí)鎴栬呮暟鎹ā鍨嬪浘錛圖ata model digram錛屾弿榪板叧緋繪暟鎹粨鏋勶級(jí)銆傜劧鍚庯紝鎵嬪姩浠庡乏杈圭殑explorer涓皢鍚勪釜鍏冪礌鎷栬繘瑙嗗浘涓紝鍦ㄨ繖涓繃紼嬩腑錛屽悇涓厓绱犱箣闂寸殑鍏寵仈鍏崇郴浼?xì)鑷姩鍦ㄥ浘涓〃绀哄嚭鏉ュQ岃屼笉闇瑕佺敤鎴峰啀鍋氬叾浠栧伐浣溿?/p>

渚嬪錛氱敓鎴愪竴涓暟鎹ā鍨嬬殑鏁版嵁妯″瀷鍥劇殑榪囩▼

浠庡乏杈瑰皢鏁版嵁妯″瀷涓殑鏁版嵁鍏冪礌鎷栧埌鍙寵竟鐨勬暟鎹ā鍨嬪浘涓紝琛–ustomerCustomerDemo鍜岃〃CustomerDemographics涔嬮棿鐨勪緷璧栧叧緋葷殑鑿卞艦綆ご鏄嚜鍔ㄧ敓鎴愮殑錛屾棤闇鎵嬪伐鎿嶄綔銆?/p>


涓鑸潵璇達(dá)紝涓涓郴緇熶腑鎵娑夊強(qiáng)鐨勬暟鎹厓绱犻潪甯稿錛屽鑷磋鍥懼緢鎷ユ尋錛屾帓鐗堜篃闈炲父鍥伴毦銆俁ational Rose鎻愪緵鐨勮嚜鍔ㄦ帓鐗堝姛鑳藉彲浠ュ緢鏂逛究鍦板府鍔╃敤鎴瘋В鍐寵繖涓棶棰樸?/p>

閫夋嫨Format->Layout Diagram錛岀郴緇熶細(xì)灝嗗浘涓殑鎵鏈夊厓绱犵敤鏈浼樻柟寮忛噸鏂版帓鍒楋紝緇欑敤鎴蜂竴涓竻鏅扮殑瑙嗗浘銆?/p>



浜旓紟鎬葷粨

浜?jiǎn)瑙d簡(jiǎn)Rational Rose鐨勯嗗悜宸ョ▼鍔熻兘錛岀敤鎴峰氨鍙互鏂逛究鍦板埄鐢ㄨ繖涓宸ュ叿榪涜澶у瀷鏁版嵁搴撶浉鍏崇殑C++緋葷粺鐨勫垎鏋愬拰鐮旂┒浜?jiǎn)銆?/p>

娉ㄩ噴

鈶營(yíng)BM Rational Software Architect鏄竴涓泦鎴愬紡璁捐鍜屽紑鍙戝伐鍏鳳紝浣跨敤鎴峰彲浠ョ敤UML妯″瀷椹卞姩鐨勫紑鍙戞柟寮忓紑鍙戝嚭緇撴瀯娓呮櫚鐨勫簲鐢ㄧ▼搴忓拰鏈嶅姟銆?/p>

鈶BM Rational Software Modeler鏄熀浜嶶ML2.0鐨勫彲瀹氬埗鐨勫彲瑙嗗寲寤烘ā鍜岃璁″伐鍏鳳紝閬靛驚瀹冩墍鎻愪緵鐨勫伐浣滄祦紼嬶紝鍙互浣垮緱緋葷粺璁捐甯堬紝緋葷粺鍒嗘瀽甯堬紝璁捐浜哄憳絳夊啓鍑烘洿涓烘竻鏅扮殑鏂囨。錛屾洿涓烘湁鏁堝湴榪涜娌熼氬拰璁捐宸ヤ綔銆?/p>

鈶ML鎻愪緵鐨勫悇縐嶇被鍨嬬殑妯″瀷鎻忚堪鍥?/p>

鐢ㄤ緥鍥?Use Case Diagram)錛氭弿榪扮郴緇熸彁渚涚殑涓涓姛鑳藉崟鍏冿紝涓昏鐩殑鏄府鍔╁紑鍙戝洟闃熶互涓縐嶅彲瑙嗗寲鐨勬柟寮忕悊瑙g郴緇熺殑鍔熻兘闇姹傦紝鍖呮嫭鍩轟簬鍩烘湰嫻佺▼鐨?瑙掕壊"錛坅ctors錛屼篃灝辨槸涓庣郴緇熶氦浜掔殑鍏朵粬瀹炰綋錛夊叧緋伙紝浠ュ強(qiáng)緋葷粺鍐呯敤渚嬩箣闂寸殑鍏崇郴銆?/p>

搴忓垪鍥?Sequence Diagram)錛氭樉紺哄叿浣撶敤渚嬶紙鎴栬呮槸鐢ㄤ緥鐨勪竴閮ㄥ垎錛夌殑璇︾粏嫻佺▼銆?/p>

鐘舵佸浘(Statechart Diagram)錛氳〃紺烘煇涓被鎵澶勭殑涓嶅悓鐘舵佸拰璇ョ被鐨勭姸鎬佽漿鎹俊鎭?/p>

媧誨姩鍥?Activity Diagram)錛氳〃紺哄湪澶勭悊鏌愪釜媧誨姩鏃訛紝涓や釜鎴栬呮洿澶氱被瀵硅薄涔嬮棿鐨勮繃紼嬫帶鍒舵祦銆?/p>

綾誨浘(Class Diagram)錛氳〃紺轟笉鍚岀殑瀹炰綋錛堜漢銆佷簨鐗╁拰鏁版嵁錛夊浣曞郊姝ょ浉鍏籌紱鎹㈠彞璇濊錛屽畠鏄劇ず浜?jiǎn)绯痪l熺殑闈?rùn)鎬佺粨鏋勩?/p>

緇勪歡鍥?Component Diagram)錛氭彁渚涚郴緇熺殑鐗╃悊瑙嗗浘銆傜粍浠訛紙Component錛夎〃紺烘ā鍨嬩唬鐮佸簱銆佹墽琛屽簱鍜屽叾瀹冪粍浠剁殑淇℃伅銆傜粍浠舵槸浠g爜鐨勫疄闄呮ā鍧楋紝緇勪歡鍥句富瑕佺敤鎴鋒槸璐熻矗鎺у埗浠g爜鍜岀紪璇戦儴緗插簲鐢ㄧ▼搴忕殑浜恒傛湁浜涚粍浠舵槸浠g爜搴擄紝鏈変簺緇勪歡鏄繍琛岀粍浠訛紝濡傛墽琛屾枃浠舵垨鍔ㄦ侀摼鎺ュ簱錛圖LL錛夋枃浠躲傦級(jí)

閮ㄧ講鍥?Deployment View)錛氳〃紺鴻杞歡緋葷粺濡備綍閮ㄧ講鍒扮‖浠剁幆澧冧腑銆?/p>

鏁版嵁妯″瀷鍥?Data Model Diagram)錛氭弿榪板叧緋繪暟鎹粨鏋勩?/p>



]]>
COM 瀛︿範(fàn)絎旇(2)-寮曠敤璁℃暟http://m.shnenglu.com/yearner/archive/2008/10/08/63500.html(Leyn)欏戒富(Leyn)欏戒富Wed, 08 Oct 2008 13:57:00 GMThttp://m.shnenglu.com/yearner/archive/2008/10/08/63500.htmlhttp://m.shnenglu.com/yearner/comments/63500.htmlhttp://m.shnenglu.com/yearner/archive/2008/10/08/63500.html#Feedback0http://m.shnenglu.com/yearner/comments/commentRss/63500.htmlhttp://m.shnenglu.com/yearner/services/trackbacks/63500.html COM鎺ュ彛閲囩敤寮曠敤璁℃暟鏉ユ帶鍒剁粍浠剁殑鐢熷懡鍛ㄦ湡銆?br> 涓昏鐢ˋddRef ,Release 鏉ヨ繘琛屽唴瀛樼鐞嗭紝褰撳鎴蜂粠緇勪歡涓彇寰椾竴涓帴鍙f椂錛屾寮曠敤璁℃暟鍊煎皢澧?銆傚綋瀹㈡埛浣跨敤瀹屾煇涓帴鍙e悗錛岀粍浠剁殑寮曠敤璁℃暟鍊煎皢鍑?銆?br> 褰撳紩鐢ㄨ鏁板間負(fù)0鏃訛紝緇勪歡鍗沖彲灝嗚嚜宸變粠鍐呬粠涓垹闄ゃ?br> 
 (1)姝g‘浣跨敤寮曠敤璁℃暟鐨勪笁鏉$畝鍗曞師鍒?
   1)鍦ㄨ繑鍥炰箣鍓嶈皟鐢ˋddRef.
   2)浣跨敤瀹屾帴鍙e悗璋冪敤Release.
   3)鍦ㄨ祴鍊間箣鍚庤皟鐢ˋddRef(鎸囬拡澶嶅埗).
  鍩烘湰鍘熷垯鏄伩鍏嶅湪浣跨敤緇勪歡鏃訛紝緇勪歡宸茶鍒犻櫎銆?br>  QueryInterface 鍜孋reateInstance涓凡緇忚皟鐢ㄤ簡(jiǎn)AddRef,鍥犳涓嶅繀鍐嶈皟鐢ㄥ畠銆?br>  浣嗕袱鑰呰繑鍥炵殑IUnknow鎺ュ彛鍜屼竴鑸帴鍙o紝鐢ㄥ畬鍚庨兘闇瑕佽皟鐢≧elease鏉ラ噴鏀俱?br>  涓鑸岃█錛屾瘡褰撳鍒朵竴涓帴鍙g殑鎸囬拡鏃訛紝閮藉簲璇ョ浉搴旂殑澧炲姞寮曠敤璁℃暟銆?br>   IUnknown* pIUnknown=CreateInstance();
   IX * pIX=NULL;
   HRESULT hr= pIUnknown->QueryInterface(IID_IX,(void **)&pIX);
   pIUnknown->Release();
   if(SUCCEEDED(hr))
   {
    pIX->Fx();    //Fx()涓哄姛鑳藉嚱鏁?br>    IX * pIX2=pIX;   //澶嶅埗鎸囬拡錛屽嵆澧炲姞浜?jiǎn)涓涓嬌鐢ㄧ粍浠?鐨勬帴鍙?鐨勫彲鑳斤紝
    pIX2->AddRef();  //鎵浠ヨ澧炲姞璁℃暟錛屽茍鍦ㄤ嬌鐢ㄥ畬涔嬪悗release
    pIX2->Fx();     
    pIX2->Release(); //
    pIX->Release(); 
   }
   //涓婇潰浠g爜涓紝浣滀負(fù)澶嶅埗鎸囬拡pIX2錛屽叾鐢熷瓨鍛ㄦ湡涓巔IX鐩稿悓錛屽嵆錛屽湪pIX Release涔嬪墠pIX2灝卞凡緇忎笉鍐嶄嬌鐢ㄤ簡(jiǎn)錛?br>   pIX淇濊瘉浜?jiǎn)缁勪欢鋴社敤瀹夊叏鐨勫墠鎻愪笅锛宲IX涓嶇敤AddRef鍜孯elease鏄偗瀹氭病闂鐨勩?br>   
   浣嗘湁鏃跺緢闅懼垽鏂煇浜涙病鏈夊姞涓夾ddRef鍜孯elease鐨勮皟鐢ㄦ槸涓嶆槸姝g‘錛屾槸浼樺寲榪樻槸紼嬪簭閿欒銆備竴鑸敤鏅鴻兘鏉ュ皝瑁?br>   寮曠敤璁℃暟錛屼粠鑰岃В鍐寵繖涓棶棰樸?鏅鴻兘鎸囬拡)
   
   緇勪歡鍙互瀵瑰叾姣忎竴涓帴鍙e垎鍒淮鎶や竴涓紩鐢ㄨ鏁幫紝涔熷彲浠ュ鏁翠釜緇勪歡緇存姢鍗曚釜鐨勫紩鐢ㄨ鏁般傚師鍒欎笂閫夋嫨浜?jiǎn)湄?fù)姣忎竴涓?br>   鎺ュ彛鍗曠嫭緇存姢涓涓紩鐢ㄨ鏁拌屼笉鏄拡瀵規(guī)暣涓淮鎶よ鏁幫紝鍘熷洜錛屼竴錛屼嬌紼嬪簭璋冭瘯鏇存柟渚匡紝浜岋紝鏀寔緋葷粺璧勬簮鐨勬寜闇鑾峰彇銆?br>   
 (2)AddRef\Release 瀹炵幇
   涓昏鏄敼鍙樻垚鍛樺彉閲弇_cRef鐨勬暟鍊箋侫ddRef澧炲姞鍏舵暟鍊鹼紝Release鍑忓皬鏁板鹼紝騫跺湪姝ゅ間負(fù)0鏃跺皢緇勪歡鍒犻櫎銆?br>   綆鍗曞疄鐜幫細(xì)
    ULONG _stdcall AddRef()
    {
     return ++m_cRef;//return InterlockIncrement(&m_cRef);
    }
    ULONG _stdcall Release()
    {
     if(--m_cRef==0)//if(InterlockDecrement(&m_cRef)==0)
     {
      delete this;
      return 0;
     }
     return m_cRef;
    }
   涓鑸敤InterlockIncrement鍜孖nterlockDecrement鏉ュ疄鐜癆ddRef\Release; 鍙互紜繚鍚屼竴鏃墮棿鍙湁鍚屼竴綰跨▼鏉ヨ闂垚鍛樺彉閲忋?br>  3)寮曠敤璁℃暟鐨勪紭鍖栧師鍒?br>    灝卞儚(1)涓緥瀛愶紝pIX鑳戒繚闅滃湪pIX2鐢熷懡鍛ㄦ湡鍐咃紝緇勪歡鑲畾浼?xì)鍦ㄥ唴瀛樺唴瀛樼暀銆傚嵆錛岄偅浜涚敓鍛藉懆鏈熷祵濂楀湪寮曠敤鍚屼竴鎺ュ彛鐨勬寚閽堢殑鐢熷懡鍛ㄦ湡涔嬪唴鏃訛紝澶栧眰鐨勫凡鏈夊紩鐢ㄨ鏁幫紝鍐呭眰鐨勫氨鍙互涓嶈浜?jiǎn)銆?br>    娉ㄦ剰閭d簺鐢熷懡鍛ㄦ湡閲嶅彔鐨勬寚閽堛?br>    (1)杈撳嚭鍙傛暟鍘熷垯
      濡傛灉鎺ュ彛鎸囬拡浠ュ嚱鏁拌繑鍥炲兼垨鑰呬互浼犲嚭鍙傛暟浼犲嚭錛岄偅涔堝湪鍑芥暟鍐呴儴錛岃繑鍥炲弬鏁板墠璋冪敤AddRef.
      渚?QueryInterface/CreateInstance;
    (2)杈撳叆鍙傛暟鍘熷垯
      鑻ユ帴鍙f寚閽堜綔涓哄弬鏁頒紶閫掔粰涓涓嚱鏁幫紝璇ュ嚱鏁頒笉淇敼涔熷皢鍏惰繑鍥炶皟鐢ㄨ咃紝姝ゆ椂鏃犻渶璋冪敤AddRef\Release渚嬶細(xì)
       void foo(pIX *pIX)
       {
        pIX->Fx();
       }
       鍥犱負(fù)鍑芥暟鐨勭敓鍛藉懆鏈熷祵濂楀湪璋冪敤鑰呯殑鐢熷懡鍛ㄦ湡涔嬪唴鐨勩?br>    (3)杈撳叆杈撳嚭鍙傛暟鍘熷垯
      瀵逛簬浼犻掕繘鏉ョ殑鎺ュ彛鎸囬拡錛屽繀欏誨湪緇欎粬闄勫彟澶栦竴涓帴鍙f寚閽堜箣鍓嶈皟鐢╮elease錛涜繑鍥炰箣鍓嶏紝榪樺繀欏誨杈撳嚭鍙傛暟鎸囧悜鐨勬柊鎺ュ彛璋冪敤AddRef;
  4)灞閮ㄥ彉閲忓師鍒?br>    瀹冧滑鏄湪鍑芥暟鐨勭敓瀛樺懆鏈熷唴鎵嶅瓨鍦紝鍥犳涓嶉渶瑕佽皟鐢ˋddRef\Release
  5)鍏ㄥ眬鍙橀噺鍘熷垯
    鍦ㄤ紶閫掔粰鍙︿竴涓嚱鏁頒箣鍓嶏紝蹇呴』璋冪敤AddRef.
  6)涓嶇‘瀹氱殑鎯呭喌
    姝ゆ椂闇瑕佽皟鐢ˋddRef\Release 浠ラ槻涓囦竴


]]>
銆奀++楂樻晥緙栫▼銆嬪涔?fàn)绗旇畮图?錛?/title><link>http://m.shnenglu.com/yearner/archive/2008/10/01/63125.html</link><dc:creator>(Leyn)欏戒富</dc:creator><author>(Leyn)欏戒富</author><pubDate>Wed, 01 Oct 2008 06:53:00 GMT</pubDate><guid>http://m.shnenglu.com/yearner/archive/2008/10/01/63125.html</guid><wfw:comment>http://m.shnenglu.com/yearner/comments/63125.html</wfw:comment><comments>http://m.shnenglu.com/yearner/archive/2008/10/01/63125.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/yearner/comments/commentRss/63125.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yearner/services/trackbacks/63125.html</trackback:ping><description><![CDATA[1.灝介噺鐢╟onst 鍜宨nline 鑰屼笉鐢?define<br>  1)渚嬶細(xì)#define ASPECT_RATIO 1.653<br>   鍦ㄦ簮鐮佽繘鍏ョ紪璇戝櫒涔嬪墠錛岄緙栬瘧鎸囦護(hù)浼?xì)琚鐞嗗櫒鍘绘帀锛岀洿鎺ョ?.653浠f浛ASPECT_RATIO錛屽鏋滄秹鍙?qiáng)鍒皹q欎釜甯擱噺鐨勪唬鐮佸嚭閿欙紝鑻ユ兂鐢?.653榪借釜鍒板師鎸囦護(hù)浼?xì)寰堝洶闅?br>   鎵浠ワ紝榪欑鎯呭喌涓嬩竴鑸敤const double ASPECT_RATIO=1.653浠f浛銆?br>   瀹氫箟鎸囬拡鏃訛紝闇瑕佹妸鎸囬拡鍜屾寚鍚戠殑鍙橀噺閮藉畾涔夋垚const<br>   const char * const authorName ="YLang"   <br>   <br>  2)鏈変簺緙栬瘧鍣紝綾誨唴鍙厑璁稿垵濮嬪寲鏁存暟綾誨瀷錛坕nt,bool,char錛夎繕鍙兘鏄父閲?br>   鑻ュ湪綾誨唴鍒嗗紑澹版槑鏁扮粍鍜屾暟緇勫ぇ灝忥紝涓洪伩鍏嶆煇浜涚紪璇戝櫒鐨勪笉瓚籌紝閲囩敤enum鏋氫婦鐨勬柟寮?br>   enum{NUM_TURNS=5};//鐩存帴閲囩敤 const NUM_TURNS=5; 瀵逛簬鏌愪簺紱佹姝よ涓虹殑緙栬瘧鍣ㄦ潵璇達(dá)紝浼?xì)鍑虹幇缂栬瘧閿欒锛?br>   int scores[NUM_TURNS];<br>  <br>  3)#define 瀹忕殑鐢ㄦ硶<br>   渚嬶細(xì)鏈澶у肩畻娉?br>     #define  max(a,b) ((a)>(b)?(a):(b))//姣忎釜鍙傛暟蹇呴』鍔犳嫭鍙?br>     鍦ㄩ亣鍒拌嚜鍔犳椂錛岃〃鐜頒簡(jiǎn)寰堝ぇ鐨勪笉紼沖畾鎬с?br>     int a=5,b=0;<br>     max(++a,b);//a鐨勫煎鍔犱簡(jiǎn)2嬈?br>     max(++a,b+10);//a鐨勫煎彧澧炲姞浜?嬈?br>   閲囩敤inline鍑芥暟鏉ユ浛鎹㈣瀹忋?nbsp;  <br>   inline int max(int a,int b) {return a>b?a:b;}<br>   template<class T><br>   inline const T& max(const T& a, const T& b)<br>   { return a>b?a:b;}<br>   <br>2.灝介噺鐢?lt;iostream>鑰屼笉鏄?lt;stdio.h><br>   scanf/printf 涓嶆槸瀹夊叏綾誨瀷錛屾病鏈夋墿灞曟э紝騫朵笖鎶婅璇誨啓鐨勫彉閲忓拰鎺у埗璇誨啓鏍煎紡淇℃伅鍒嗗紑銆?br>   閲嶈澆榪愮畻絎?lt;< 寮ヨˉ浜?jiǎn)浠栦滑鐨劸~虹偣銆?br>   <iostream>鍙Щ妞嶆у彲鎵╁睍鎬ц緝楂橈紝搴撶被鏈夋瀯閫犲嚱鏁幫紱<stdio.h>搴撶被娌℃湁鏋勯犲嚱鏁?br>   #include <iostream> 鍜?include <iostream.h>鐨勫尯鍒?br>   鍓嶈呭緱鍒扮殑鏄疆浜巗td鍚嶅瓧絀洪棿涓嬬殑鍏冪礌錛屽悗鑰呮槸鍚屾牱鐨勫厓绱狅紝浣嗘槸鍏ㄥ眬絀洪棿閲岋紝浼?xì)閫犳垚鍛藉悕鍐茬獊銆?br>   <br>3.灝介噺鐢╪ew鍜宒elete鑰屼笉鏄痬alloc 鍜宖ree<br> 鍓嶈呬細(xì)鍒涘緩/鍒犻櫎瀵硅薄錛屽悓鏃惰皟鐢ㄦ瀯閫?鏋愭瀯鍑芥暟錛涘悗鑰呬粎鍒涘緩/鍒犻櫎絀洪棿錛屾病鏈夎皟鐢ㄦ瀯閫?鏋愭瀯鍑芥暟錛?br> <br>4.C++娉ㄩ噴椋庢牸<br> 灝介噺涓嶈鐢?* */<br> <br>5.new鍜宒elete瑕佸搴旂浉鍚岀殑褰㈠紡<br> new鏁扮粍鐢ㄤ簡(jiǎn)[] 錛宒elete涔熷繀欏葷敤[];<br> 濡傛灉瑕佸垹闄ゆ寚閽堟寚鍚戠殑鏁扮粍絀洪棿闇瑕佺敤delete[];<br> <br>6.灝介噺鍦ㄦ瀽鏋勫嚱鏁伴噷瀵規(guī)寚閽堟垚鍛樿皟鐢╠elete<br> 闄ら潪綾繪垚鍛樻渶鍒濈敤浜?jiǎn)new錛屽惁鍒欐槸涓嶇敤鍦ㄦ瀽鏋勯噷鐢╠elete鐨勩?br> 鎴栬呯敤鏅鴻兘鎸囬拡鏉ヤ唬鏇?C++鏍囧噯搴揳uto_ptr)\<br> <br>7.棰勫厛鍑嗗濂藉唴瀛樹(shù)笉瓚崇殑鎯呭喌<br> 鑰冭檻鍒板綋new涓涓璞℃椂錛岀悊璁轟笂鍙兘浼?xì)鍙戠敓鏃犳硶瀹屾垚鍐呭瓨鍒嗛厤鑰屾姏鍑哄紓甯哥殑鎯呭喌銆?br> C鐨勫仛娉曟槸瀹氫箟瀹忔潵鍒嗛厤鍐呭瓨騫舵鏌ュ垎閰嶆槸鍚︽垚鍔熴?br> 榪欑瀹忕殑C++鍐嶇幇錛?br> #define NEW(PTR,TYPE)<br> try {(PTR)= new TYPE;}<br>  catch(std::bad_alloc&){assert(0);}<br> //璇存槑錛?br> //1)assert媯(gè)鏌ヤ紶緇欏畠鐨勮〃杈懼紡鏄惁涓洪潪闆訛紝濡傛灉涓嶆槸闈?錛屽彂鍑轟竴鏉¢敊璇俊鎭茍璋冪敤abort. <br> // 鑰宎ssert鍙槸鍦ㄨ皟璇曠姸鎬?娌℃湁瀹氫箟 NDEBUGE)涓嬫墠浼?xì)钃v浣滅敤錛屼駭鍝佸彂甯冩椂(瀹氫箟 NDEBUGE)assert浠涔堥兘涓嶅仛銆?<br> //2)娌℃湁鑰冭檻鍒皀ew鐨勫縐嶅艦寮? new T;new T(constructor argument);new T[size];<br> 鎵浠ヤ竴鑸笉鐢ㄨ繖縐嶆柟妗?br> 綆鍗曠殑鏂規(guī)硶錛氬埗瀹氫竴閿欒澶勭悊鍑芥暟錛屽湪鎶涘嚭寮傚父鍓嶈皟鐢ㄣ?br> 鍦ㄥご鏂囦歡<new>涓?<br> typedef void (* new_handler)();<br> new_handler set_new_handler()(new_handler p) throw();<br> 鍦ㄨ皟鐢╪ew涔嬪墠錛屼嬌鐢╯et_new_handler鏉ヨ瀹氶敊璇鐞嗗嚱鏁幫紝浼犲叆鍙傛暟涓哄嚱鏁版寚閽堛?br> 渚嬶細(xì)<br>  void onMemoryError(){......}//invoke before throwing the expection;<br>  int mail()<br>  {<br>   set_new_handler(onMemoryError);<br>   int *pBigMemory=new int[100000];<br>  }<br> C++ 涓鐞嗘満鍒訛細(xì)<br>  璁懼畾澶勭悊鍑芥暟涓哄叏灞錛屽湪set_new_handler瀹夎鑷畾涔夊鐞嗗嚱鏁頒箣鍓嶄繚瀛樺師鏈夊嚱鏁般?br>  鍒嗛厤鍐呭瓨錛岃嫢澶辮觸鍒欐姏鍑哄紓甯革紝榪斿洖涔嬪墠鎭㈠鍘熷鐞嗗嚱鏁般?br>  void * X::operator new(size_t size)<br>  {<br>   new_handler globalHandler = // 瀹夎X 鐨刵ew_handler<br>   std::set_new_handler(currentHandler);<br>    <br>   void *memory;<br>    <br>   try<br>     { // 灝濊瘯鍒嗛厤鍐呭瓨<br>     memory = ::operator new(size);<br>     }<br>   catch (std::bad_alloc&)<br>     {<br>     // 鎭㈠鏃х殑new_handler<br>     std::set_new_handler(globalHandler);<br>     throw; // 鎶涘嚭寮傚父<br>     }<br>   std::set_new_handler(globalHandler); // 鎭㈠鏃х殑new_handler<br>   return memory;<br>  }<br><br><img src ="http://m.shnenglu.com/yearner/aggbug/63125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yearner/" target="_blank">(Leyn)欏戒富</a> 2008-10-01 14:53 <a href="http://m.shnenglu.com/yearner/archive/2008/10/01/63125.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>COM 瀛︿範(fàn)絎旇錛?錛?/title><link>http://m.shnenglu.com/yearner/archive/2008/07/22/56882.html</link><dc:creator>(Leyn)欏戒富</dc:creator><author>(Leyn)欏戒富</author><pubDate>Tue, 22 Jul 2008 10:50:00 GMT</pubDate><guid>http://m.shnenglu.com/yearner/archive/2008/07/22/56882.html</guid><wfw:comment>http://m.shnenglu.com/yearner/comments/56882.html</wfw:comment><comments>http://m.shnenglu.com/yearner/archive/2008/07/22/56882.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yearner/comments/commentRss/56882.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yearner/services/trackbacks/56882.html</trackback:ping><description><![CDATA[<p class="MsoNormal"><span lang="EN-US">COM </span><span style="font-family: 瀹?huà)浣?">瀛︿範(fàn)絎旇</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">QueryInterface</span><span style="font-family: 瀹?huà)浣?">鍑芥暟</span></p> <p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 瀹?huà)浣?">涓昏鐢ㄤ簬</span><span lang="EN-US">COM</span><span style="font-family: 瀹?huà)浣?">鎺ュ彛鐨勬煡璇€傚畠鏄?/span><span lang="EN-US">COM</span><span style="font-family: 瀹?huà)浣?">鎺ュ彛瀹氫箟</span><span lang="EN-US">IUnknown</span><span style="font-family: 瀹?huà)浣?">鐨勬垚鍛樺嚱鏁幫紝瀹㈡埛鍙互璋冪敤</span><span lang="EN-US">QueryInterface</span><span style="font-family: 瀹?huà)浣?">鏉ュ喅瀹氱粍浠舵槸鍚︽敮鎸佹煇涓壒瀹氱殑鎺ュ彛銆?/span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span></span><span style="font-family: 瀹?huà)浣?">緇勪歡</span><span lang="EN-US">COM</span><span style="font-family: 瀹?huà)浣?">鎺ュ彛閮芥槸浠?/span><span lang="EN-US">IUnkonwn</span><span style="font-family: 瀹?huà)浣?">鎺ュ彛緇ф壙鑰屾潵錛屼換浣曚竴涓帴鍙i兘鍙互鐢?/span><span lang="EN-US">IUnknown</span><span style="font-family: 瀹?huà)浣?">鐨勬垚鍛?/span><span lang="EN-US">QueryInterface</span><span style="font-family: 瀹?huà)浣?">鏉ヨ幏鍙栧畠鎵鏀寔鐨勫叾瀹冩帴鍙c?/span></p> <p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">1</span><span style="font-family: 瀹?huà)浣?">錛夊畾涔夛細(xì)</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span>HRESULT _stdcall QueryInterface(const IID& iid,void ** ppv);</span></p> <p class="MsoNormal"><span style="font-family: 瀹?huà)浣?">絎竴涓弬鏁板崄鎵闇鎺ュ彛鐨勬爣璇嗭紝鏄竴涓帴鍙f爣璇嗙</span><span lang="EN-US">IID</span><span style="font-family: 瀹?huà)浣?">緇撴瀯銆?/span> <span style="font-family: 瀹?huà)浣?">絎簩涓弬鏁板瓨鏀炬墍璇鋒眰鎺ュ彛鎸囬拡鐨勫湴鍧銆?/span></p> <p class="MsoNormal"><span lang="EN-US"><span> </span><span>     </span>2</span><span style="font-family: 瀹?huà)浣?">錛変嬌鐢ㄨ繃紼嬶細(xì)</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span></span><span style="font-family: 瀹?huà)浣?">鍋囧畾宸叉湁涓涓寚鍚?/span><span lang="EN-US">IUnknown</span><span style="font-family: 瀹?huà)浣?">鐨勬寚閽?/span><span lang="EN-US">pI</span><span style="font-family: 瀹?huà)浣?">錛屼負(fù)鐭ラ亾鐩稿簲鐨勭粍浠舵槸鍚︽敮鎸佹煇涓壒瀹氱殑鎺ュ彛錛岃皟鐢?/span><span lang="EN-US">QueryInterface</span><span style="font-family: 瀹?huà)浣?">錛屼紶緇欏畠涓涓帴鍙f爣璇嗙銆傝嫢鎴愬姛榪斿洖錛岄偅灝辨槸鍙互浣跨敤瀹冭繑鍥炵殑鎸囬拡銆?/span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">Void foo(IUnknown * pI)</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">{</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US"><span>       </span>IX *pIX=NULL;</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">HRESULT hr=pI->QueryInterface(IID_IX,(void **)&pIX);</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">If(SUCCEEDED(hr))</span></p> <p class="MsoNormal" style="margin-left: 41.25pt; text-indent: 21.75pt;"><span lang="EN-US">pIX->Fx();</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">}</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span style="font-family: 瀹?huà)浣?">璇ュ嚱鏁扮敤浜庢煡璇?/span><span lang="EN-US">pI</span><span style="font-family: 瀹?huà)浣?">鏄惁鏀寔鐢?/span><span lang="EN-US">IID_IX</span><span style="font-family: 瀹?huà)浣?">鎵鏍囪瘑鐨勬帴鍙c?/span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">IUnknown</span><span style="font-family: 瀹?huà)浣?">鐨勭戶鎵夸笉鏄櫄鎷熷熀綾匯?/span><span lang="EN-US">COM</span><span style="font-family: 瀹?huà)浣?">鎺ュ彛涓嶈兘鎸夌収铏氭嫙鏂瑰紡緇ф壙瀹冦?/span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">3</span><span style="font-family: 瀹?huà)浣?">錛夊疄鐜幫細(xì)</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">Interface IX</span><span style="font-family: 瀹?huà)浣?">錛?/span><span lang="EN-US">IUnknown{/**/}</span><span style="font-family: 瀹?huà)浣?">錛?/span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">Interface IY</span><span style="font-family: 瀹?huà)浣?">錛?/span><span lang="EN-US">IUnknown{/**/}</span><span style="font-family: 瀹?huà)浣?">錛?/span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">Class CA</span><span style="font-family: 瀹?huà)浣?">錛?/span><span lang="EN-US">public IX,public IY{/**/};</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span style="font-family: 瀹?huà)浣?">涓昏閫氳繃鍒ゆ柇鏍囪瘑絎︽槸鍚︿負(fù)</span><span lang="EN-US">CA</span><span style="font-family: 瀹?huà)浣?">鐨勬敮鎸佺被鍨嬶紝鏉ュ垽鏂槸鍚︿負(fù)瀛樺湪鍦?/span><span lang="EN-US">CA</span><span style="font-family: 瀹?huà)浣?">涓殑</span><span lang="EN-US">COM</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">HRESULT _stdcall CA:;QueryInterface(const IID &iid,void **ppv)</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">{</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US"><span>       </span>If(iid==IID_IUnknown)</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">{</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US"><span>       </span>*ppv=static_cast<IX *>(this);</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">}</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">Else if(iid==IID_IX)</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">{</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US"><span>       </span>*ppv=static_cast<IX*>(this);</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">}</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">Else if (iid==IID_IY)</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">{</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US"><span>       </span>*ppv=static_cast<IY*>(this);</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">}</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">Else </span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">{</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US"><span>       </span>*ppv=NULL;</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">Return E_NOINTERFACE;</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">}</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">Static_cast<IUnknown*>(*ppv)->AddRef();</span></p> <p class="MsoNormal" style="margin-left: 20.25pt; text-indent: 21.75pt;"><span lang="EN-US">Return S_OK;</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">}</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">4</span><span style="font-family: 瀹?huà)浣?">錛夊叧浜庡叾涓殑綾誨瀷杞崲</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US"><span>   </span></span><span style="font-family: 瀹?huà)浣?">紼嬪簭涓嫢灝?/span><span lang="EN-US">this</span><span style="font-family: 瀹?huà)浣?">鎸囬拡鐩存帴杞崲鎴?/span><span lang="EN-US">IUnknown*</span><span style="font-family: 瀹?huà)浣?">鏄笉鏄庣‘鐨勩傚洜涓哄瓨鍦ㄤ袱涓熀綾繪帴鍙o紝闇瑕佹寚鏄庢槸杞崲鍚戝摢涓涓帴鍙g殑</span><span lang="EN-US">IUnknown</span><span style="font-family: 瀹?huà)浣?">銆?/span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span lang="EN-US">Static_cast<IUnknown*> (static_cast<IX *>(this))</span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span style="font-size: 10.5pt; font-family: "times new roman","serif";" lang="EN-US"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:414.75pt; height:235.5pt'"> <v:imagedata src="file:///C:\DOCUME~1\LEYANG~1.ETH\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><img src="file:///C:/DOCUME~1/LEYANG~1.ETH/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.jpg" v:shapes="_x0000_i1025" height="314" width="553"><!--[endif]--></span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span style="font-family: 瀹?huà)浣?">鍦ㄧ被鍨嬭漿鎹㈡椂錛?/span><span lang="EN-US">CA</span><span style="font-family: 瀹?huà)浣?">鎸夌収欏哄簭瀛樻斁瀹冪殑鍩虹被鎺ュ彛鍙?qiáng)鍏跺疄鐜板Q屽叾</span><span lang="EN-US">this</span><span style="font-family: 瀹?huà)浣?">鎸囬拡鍙互鐢?/span><span lang="EN-US">IX</span><span style="font-family: 瀹?huà)浣?">浠f浛錛堝湴鍧鍊肩浉鍚岋級(jí)銆?/span></p> <p class="MsoNormal" style="text-indent: 21.75pt;"><span style="font-family: 瀹?huà)浣?">鑰?/span><span lang="EN-US">IY</span><span style="font-family: 瀹?huà)浣?">鍒欓渶瑕?/span><span lang="EN-US">CA</span><span style="font-family: 瀹?huà)浣?">鐨勫熀鍧鍔犱笂鍋忕Щ鍧銆?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><img src ="http://m.shnenglu.com/yearner/aggbug/56882.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yearner/" target="_blank">(Leyn)欏戒富</a> 2008-07-22 18:50 <a href="http://m.shnenglu.com/yearner/archive/2008/07/22/56882.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://m.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://jiazhuangma.com" target="_blank">午夜在线一区二区</a>| <a href="http://2cc8.com" target="_blank">久久亚洲视频</a>| <a href="http://8x588.com" target="_blank">在线日本欧美</a>| <a href="http://3344568.com" target="_blank">亚洲电影网站</a>| <a href="http://qqqtrip.com" target="_blank">日韩视频欧美视频</a>| <a href="http://520taose.com" target="_blank">亚洲一区精品电影</a>| <a href="http://whdzjc.com" target="_blank">久久精品夜色噜噜亚洲a∨</a>| <a href="http://13501680.com" target="_blank">久久久久久久91</a>| <a href="http://456dv.com" target="_blank">米奇777在线欧美播放</a>| <a href="http://www-188445.com" target="_blank">欧美成人蜜桃</a>| <a href="http://543422.com" target="_blank">夜夜夜精品看看</a>| <a href="http://cqjk120.com" target="_blank">欧美影院一区</a>| <a href="http://www-q28.com" target="_blank">欧美国产一区视频在线观看</a>| <a href="http://by3799.com" target="_blank">欧美久久久久久久</a>| <a href="http://whmingtong.com" target="_blank">国产精品久久久一区麻豆最新章节</a>| <a href="http://3188m.com" target="_blank">国产精品一区二区视频</a>| <a href="http://123yongjiu.com" target="_blank">一区二区三区中文在线观看</a>| <a href="http://cmtqd.com" target="_blank">99视频国产精品免费观看</a>| <a href="http://czsanlin.com" target="_blank">亚洲男同1069视频</a>| <a href="http://987328.com" target="_blank">欧美~级网站不卡</a>| <a href="http://by5130.com" target="_blank">艳妇臀荡乳欲伦亚洲一区</a>| <a href="http://857sds.com" target="_blank">亚洲欧美精品suv</a>| <a href="http://h7yy.com" target="_blank">奶水喷射视频一区</a>| <a href="http://hakuihoso.com" target="_blank">欧美日韩美女一区二区</a>| <a href="http://lmjqav.com" target="_blank">国产字幕视频一区二区</a>| <a href="http://www777788c.com" target="_blank">亚洲精品一区二区三区蜜桃久</a>| <a href="http://335848.com" target="_blank">中文亚洲字幕</a>| <a href="http://6666785.com" target="_blank">美乳少妇欧美精品</a>| <a href="http://bby99.com" target="_blank">亚洲小说欧美另类婷婷</a>| <a href="http://jlkcjz.com" target="_blank">免费美女久久99</a>| <a href="http://saohu79.com" target="_blank">国产日韩欧美在线看</a>| <a href="http://cfqcgw.com" target="_blank">野花国产精品入口</a>| <a href="http://seo8138.com" target="_blank">欧美成人69av</a>| <a href="http://8181777.com" target="_blank">久久福利资源站</a>| <a href="http://621768.com" target="_blank">国产精品wwwwww</a>| <a href="http://chunshanketang.com" target="_blank">一区在线影院</a>| <a href="http://mimi78.com" target="_blank">亚洲欧美日韩国产综合精品二区</a>| <a href="http://058888e.com" target="_blank">免费观看欧美在线视频的网站</a>| <a href="http://993934.com" target="_blank">99亚洲精品</a>| <a href="http://www-777324.com" target="_blank">免费成人性网站</a>| <a href="http://www-ss777.com" target="_blank">国产综合久久久久久</a>| <a href="http://621791.com" target="_blank">中文精品视频</a>| <a href="http://236664.com" target="_blank">亚洲区免费影片</a>| <a href="http://9lunli.com" target="_blank">久久免费少妇高潮久久精品99</a>| <a href="http://1313js.com" target="_blank">国产精品日韩久久久久</a>| <a href="http://yw9677.com" target="_blank">一卡二卡3卡四卡高清精品视频</a>| <a href="http://56718ca.com" target="_blank">久久色中文字幕</a>| <a href="http://ks180.com" target="_blank">亚洲欧美大片</a>| <a href="http://d77dd.com" target="_blank">国产精品久久久久av免费</a>| <a href="http://qiezisp2.com" target="_blank">在线一区二区三区四区五区</a>| <a href="http://4r6b.com" target="_blank">亚洲福利在线视频</a>| <a href="http://juegold.com" target="_blank">久久国产精彩视频</a>| <a href="http://40346c.com" target="_blank">国产久一道中文一区</a>| <a href="http://cecelife.com" target="_blank">亚洲一区二区精品</a>| <a href="http://free18teen.com" target="_blank">亚洲另类自拍</a>| <a href="http://zyjxyx.com" target="_blank">欧美理论大片</a>| <a href="http://www-964664.com" target="_blank">一区二区不卡在线视频 午夜欧美不卡' </a>| <a href="http://qq666qq.com" target="_blank">亚洲国产一区二区在线</a>| <a href="http://sxhrsmjj.com" target="_blank">久久久久国产精品一区</a>| <a href="http://nvpuwo22.com" target="_blank">性久久久久久久久久久久</a>| <a href="http://www-273111.com" target="_blank">国产精品久久久久一区二区</a>| <a href="http://ccc982.com" target="_blank">亚洲视频久久</a>| <a href="http://qdssqt.com" target="_blank">亚洲午夜未删减在线观看</a>| <a href="http://qhzyxcd.com" target="_blank">欧美性事在线</a>| <a href="http://by1473.com" target="_blank">久久aⅴ乱码一区二区三区</a>| <a href="http://jinlijun.com" target="_blank">午夜精品一区二区三区在线</a>| <a href="http://988tz.com" target="_blank">国产日韩欧美中文</a>| <a href="http://www330849.com" target="_blank">久久视频在线视频</a>| <a href="http://szywsj.com" target="_blank">乱中年女人伦av一区二区</a>| <a href="http://tuokuba520.com" target="_blank">在线观看精品一区</a>| <a href="http://430390.com" target="_blank">亚洲国产精品小视频</a>| <a href="http://aa224.com" target="_blank">欧美日韩一区二区在线观看</a>| <a href="http://557523.com" target="_blank">亚洲永久在线</a>| <a href="http://551731.com" target="_blank">欧美在线观看天堂一区二区三区 </a>| <a href="http://91sp136.com" target="_blank">亚洲精品中文在线</a>| <a href="http://www-4012345.com" target="_blank">亚洲人成绝费网站色www</a>| <a href="http://pron12.com" target="_blank">欧美日韩另类综合</a>| <a href="http://jilcool.com" target="_blank">欧美一区二区三区的</a>| <a href="http://8842aa.com" target="_blank">久久国产成人</a>| <a href="http://668334.com" target="_blank">亚洲看片一区</a>| <a href="http://www559955.com" target="_blank">亚洲专区免费</a>| <a href="http://haochen072.com" target="_blank">亚洲第一免费播放区</a>| <a href="http://muwendada.com" target="_blank">亚洲日本欧美天堂</a>| <a href="http://dfrllaser.com" target="_blank">国产精品一区在线观看你懂的</a>| <a href="http://zyjzz.com" target="_blank">久久三级福利</a>| <a href="http://ykk7.com" target="_blank">欧美日韩一区二区视频在线观看 </a>| <a href="http://5588gww.com" target="_blank">久久精品青青大伊人av</a>| <a href="http://713b.com" target="_blank">久久美女性网</a>| <a href="http://wwwavtb1122.com" target="_blank">亚洲视频一区</a>| <a href="http://amass-ic.com" target="_blank">久久精品国产一区二区三区免费看</a>| <a href="http://05511253.com" target="_blank">一区三区视频</a>| <a href="http://2938476.com" target="_blank">一本大道av伊人久久综合</a>| <a href="http://958997.com" target="_blank">国产一区二区三区的电影</a>| <a href="http://www249aaa.com" target="_blank">欧美成人精品在线播放</a>| <a href="http://621762.com" target="_blank">欧美无乱码久久久免费午夜一区</a>| <a href="http://789583.com" target="_blank">欧美伊人久久久久久午夜久久久久 </a>| <a href="http://sclddn.com" target="_blank">一本色道婷婷久久欧美</a>| <a href="http://xvideoav99.com" target="_blank">亚洲一区国产视频</a>| <a href="http://zunguidq.com" target="_blank">亚洲国产清纯</a>| <a href="http://ximaimicro.com" target="_blank">午夜国产精品视频免费体验区</a>| <a href="http://7357538.com" target="_blank">1024亚洲</a>| <a href="http://kanzhelu31.com" target="_blank">亚洲综合丁香</a>| <a href="http://www-23918.com" target="_blank">一区二区不卡在线视频 午夜欧美不卡' </a>| <a href="http://6688zf.com" target="_blank">亚洲精品一区久久久久久</a>| <a href="http://556626.com" target="_blank">一区二区三区四区五区精品</a>| <a href="http://wwwnnnn.com" target="_blank">国产亚洲观看</a>| <a href="http://wanshunpu.com" target="_blank">9人人澡人人爽人人精品</a>| <a href="http://wwwmy77757.com" target="_blank">国产一区二区三区奇米久涩</a>| <a href="http://2015xiaomingkankan.com" target="_blank">亚洲欧洲日韩在线</a>| <a href="http://qiruiwangluo.com" target="_blank">好看的av在线不卡观看</a>| <a href="http://889644.com" target="_blank">亚洲色图制服丝袜</a>| <a href="http://seanzhau.com" target="_blank">亚洲精品国久久99热</a>| <a href="http://shno1steel.com" target="_blank">欧美一区二区三区四区高清</a>| <a href="http://xingda-sh.com" target="_blank">中文国产一区</a>| <a href="http://www-34909.com" target="_blank">久久青草久久</a>| <a href="http://www77vcd.com" target="_blank">久久网站免费</a>| <a href="http://ckk755.com" target="_blank">国产一区二区三区高清播放</a>| <a href="http://alex-bruni.com" target="_blank">夜夜夜精品看看</a>| <a href="http://0773ye.com" target="_blank">一本色道精品久久一区二区三区 </a>| <a href="http://oksousou.com" target="_blank">国产精品免费一区二区三区在线观看 </a>| <a href="http://337791.com" target="_blank">久久精品色图</a>| <a href="http://y1bbs.com" target="_blank">国产精品免费看久久久香蕉</a>| <a href="http://605012.com" target="_blank">日韩午夜精品</a>| <a href="http://hs045.com" target="_blank">一本久道久久综合狠狠爱</a>| <a href="http://xdlot.com" target="_blank">欧美.com</a>| <a href="http://ncncpa.com" target="_blank">亚洲高清在线观看</a>| <a href="http://xss521.com" target="_blank">亚洲国产一区二区a毛片</a>| <a href="http://qqszdq.com" target="_blank">久久久久在线观看</a>| <a href="http://www49853b.com" target="_blank">久久免费黄色</a>| <a href="http://5110010.com" target="_blank">伊人春色精品</a>| <a href="http://710191.com" target="_blank">蜜臀va亚洲va欧美va天堂</a>| <a href="http://800716.com" target="_blank">免费日韩av片</a>| <a href="http://aqdav81.com" target="_blank">一区二区视频欧美</a>| <a href="http://asanny.com" target="_blank">久久最新视频</a>| <a href="http://082235.com" target="_blank">欧美激情一区二区在线</a>| <a href="http://889644.com" target="_blank">亚洲国产1区</a>| <a href="http://chaxiangmall.com" target="_blank">免费在线观看成人av</a>| <a href="http://2220004.com" target="_blank">亚洲第一精品电影</a>| <a href="http://woshinannan741.com" target="_blank">亚洲精品视频免费在线观看</a>| <a href="http://qiruiwangluo.com" target="_blank">欧美mv日韩mv国产网站</a>| <a href="http://o74sokyoss.com" target="_blank">亚洲成人中文</a>| <a href="http://977dy.com" target="_blank">一本色道88久久加勒比精品</a>| <a href="http://bkf23.com" target="_blank">欧美日韩中文</a>| <a href="http://teloregen.com" target="_blank">亚洲一区激情</a>| <a href="http://91see8.com" target="_blank">久久久另类综合</a>| <a href="http://nxhjzddata.com" target="_blank">韩国成人理伦片免费播放</a>| <a href="http://aiqianfang.com" target="_blank">久久久久88色偷偷免费</a>| <a href="http://xingmaipet.com" target="_blank">欧美1区2区</a>| <a href="http://czhqwy.com" target="_blank">中文一区二区在线观看</a>| <a href="http://9113i.com" target="_blank">国产精品欧美激情</a>| <a href="http://ju5558.com" target="_blank">欧美影院视频</a>| <a href="http://qdpetlove.com" target="_blank">欧美肥婆bbw</a>| <a href="http://wocao1997.com" target="_blank">一区二区高清视频</a>| <a href="http://5566kan.com" target="_blank">国产精品久久九九</a>| <a href="http://13751144594.com" target="_blank">欧美一级播放</a>| <a href="http://www-6410c.com" target="_blank">欧美激情亚洲精品</a>| <a href="http://4488269.com" target="_blank">亚洲一区二区三区高清不卡</a>| <a href="http://244223.com" target="_blank">国产欧美午夜</a>| <a href="http://www52y.com" target="_blank">免费欧美在线视频</a>| <a href="http://wwzz3.com" target="_blank">一区二区三区精品久久久</a>| <a href="http://kk1xx-com.com" target="_blank">欧美综合国产</a>| <a href="http://2302345.com" target="_blank">最新成人av网站</a>| <a href="http://zhouqie.com" target="_blank">国产精品sss</a>| <a href="http://bbbbyb.com" target="_blank">久久久国产午夜精品</a>| <a href="http://44cgcg.com" target="_blank">亚洲精品乱码久久久久久按摩观</a>| <a href="http://77427xyz.com" target="_blank">亚洲欧美国产制服动漫</a>| <a href="http://tv-miya188.com" target="_blank">9久草视频在线视频精品</a>| <a href="http://dxmdzz.com" target="_blank">国产精品视频yy9099</a>| <a href="http://114mz.com" target="_blank">欧美在线观看天堂一区二区三区</a>| <a href="http://226600b.com" target="_blank">欧美粗暴jizz性欧美20</a>| <a href="http://85181890.com" target="_blank">午夜精品av</a>| <a href="http://51duanxinmao.com" target="_blank">在线看欧美视频</a>| <a href="http://nnnn34.com" target="_blank">国产精品高潮粉嫩av</a>| <a href="http://91chaopron.com" target="_blank">久久久久久9999</a>| <a href="http://www-8617.com" target="_blank">一区二区国产在线观看</a>| <a href="http://961318.com" target="_blank">美女诱惑一区</a>| <a href="http://iamsleekcn.com" target="_blank">午夜精品久久久久久99热软件</a>| <a href="http://com42923.com" target="_blank">在线精品国产欧美</a>| <a href="http://ruichengxiang.com" target="_blank">国产精品久久看</a>| <a href="http://548710.com" target="_blank">欧美精选在线</a>| <a href="http://1177898.com" target="_blank">久久免费国产精品</a>| <a href="http://www473333.com" target="_blank">亚洲在线成人</a>| <a href="http://www515678.com" target="_blank">亚洲人成人一区二区在线观看</a>| <a href="http://8x29ft.com" target="_blank">欧美亚洲一区</a>| <a href="http://52wenxiu.com" target="_blank">一本色道久久综合亚洲精品不</a>| <a href="http://yc7878.com" target="_blank">国产专区欧美专区</a>| <a href="http://817794.com" target="_blank">国产精品三区www17con</a>| <a href="http://hy8r.com" target="_blank">欧美久久综合</a>| <a href="http://www780yy.com" target="_blank">裸体歌舞表演一区二区</a>| <a href="http://7555hh.com" target="_blank">亚洲在线视频免费观看</a>| <a href="http://www-438686.com" target="_blank">亚洲欧洲在线一区</a>| <a href="http://91pinping.com" target="_blank">免费国产自线拍一欧美视频</a>| <a href="http://hzjqkj.com" target="_blank">欧美专区中文字幕</a>| <a href="http://y87b.com" target="_blank">先锋影音久久久</a>| <a href="http://gzhachi.com" target="_blank">亚洲午夜91</a>| <a href="http://neudlac.com" target="_blank">99精品欧美一区二区三区</a>| <a href="http://xxxx48.com" target="_blank">亚洲国产精品ⅴa在线观看</a>| <a href="http://23230066.com" target="_blank">国产一区二区无遮挡</a>| <a href="http://1616mz.com" target="_blank">国产精品一区免费观看</a>| <a href="http://www901aaa.com" target="_blank">国产精品分类</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>