锘??xml version="1.0" encoding="utf-8" standalone="yes"?>在线观看视频亚洲,美女日韩在线中文字幕,亚洲国产日韩一级http://m.shnenglu.com/xushaohua/archive/2009/02/15/73861.htmlneterneterSun, 15 Feb 2009 04:58:00 GMThttp://m.shnenglu.com/xushaohua/archive/2009/02/15/73861.htmlhttp://m.shnenglu.com/xushaohua/comments/73861.htmlhttp://m.shnenglu.com/xushaohua/archive/2009/02/15/73861.html#Feedback0http://m.shnenglu.com/xushaohua/comments/commentRss/73861.htmlhttp://m.shnenglu.com/xushaohua/services/trackbacks/73861.html

LGPL鏄疓PL鐨勪竴涓負涓昏涓虹被搴撲嬌鐢ㄨ璁$殑寮婧愬崗璁傚拰GPL瑕佹眰浠諱綍浣跨敤/淇敼/琛嶇敓涔婫PL綾誨簱鐨勭殑杞歡蹇呴』閲囩敤GPL鍗忚涓嶅悓銆侺GPL鍏佽鍟嗕笟杞歡閫氳繃綾誨簱寮曠敤(link)鏂瑰紡浣跨敤LGPL綾誨簱鑰屼笉闇瑕佸紑婧愬晢涓氳蔣浠剁殑浠g爜銆傝繖浣垮緱閲囩敤LGPL鍗忚鐨勫紑婧愪唬鐮佸彲浠ヨ鍟嗕笟杞歡浣滀負綾誨簱寮曠敤騫跺彂甯冨拰閿鍞?/p>

浣嗘槸濡傛灉淇敼LGPL鍗忚鐨勪唬鐮佹垨鑰呰鐢燂紝鍒欐墍鏈変慨鏀圭殑浠g爜錛屾秹鍙婁慨鏀歸儴鍒嗙殑棰濆浠g爜鍜岃鐢熺殑浠g爜閮藉繀欏婚噰鐢↙GPL鍗忚銆傚洜姝GPL鍗忚鐨勫紑婧愪唬鐮佸緢閫傚悎浣滀負絎笁鏂圭被搴撹鍟嗕笟杞歡寮曠敤錛屼絾涓嶉傚悎甯屾湜浠GPL鍗忚浠g爜涓哄熀紜錛岄氳繃淇敼鍜岃鐢熺殑鏂瑰紡鍋氫簩嬈″紑鍙戠殑鍟嗕笟杞歡閲囩敤銆?/p>

GPL/LGPL閮戒繚闅滃師浣滆呯殑鐭ヨ瘑浜ф潈錛岄伩鍏嶆湁浜哄埄鐢ㄥ紑婧愪唬鐮佸鍒跺茍寮鍙戠被浼肩殑浜у搧



neter 2009-02-15 12:58 鍙戣〃璇勮
]]>
寮婧愬崗璁?-----GPLhttp://m.shnenglu.com/xushaohua/archive/2009/02/15/73860.htmlneterneterSun, 15 Feb 2009 04:57:00 GMThttp://m.shnenglu.com/xushaohua/archive/2009/02/15/73860.htmlhttp://m.shnenglu.com/xushaohua/comments/73860.htmlhttp://m.shnenglu.com/xushaohua/archive/2009/02/15/73860.html#Feedback0http://m.shnenglu.com/xushaohua/comments/commentRss/73860.htmlhttp://m.shnenglu.com/xushaohua/services/trackbacks/73860.html


鎴戜滑寰堢啛鎮夌殑Linux灝辨槸閲囩敤浜咷PL銆侴PL鍗忚鍜孊SD, Apache Licence絳夐紦鍔變唬鐮侀噸鐢ㄧ殑璁稿彲寰堜笉涓鏍楓侴PL鐨勫嚭鍙戠偣鏄唬鐮佺殑寮婧?鍏嶈垂浣跨敤鍜屽紩鐢?淇敼/琛嶇敓浠g爜鐨勫紑婧?鍏嶈垂浣跨敤錛屼絾涓嶅厑璁鎬慨鏀瑰悗鍜岃鐢熺殑浠g爜鍋氫負闂簮鐨勫晢涓氳蔣浠跺彂甯冨拰閿鍞傝繖涔熷氨鏄負浠涔堟垜浠兘鐢ㄥ厤璐圭殑鍚勭linux錛屽寘鎷晢涓氬叕鍙哥殑linux鍜宭inux涓婂悇縐嶅悇鏍風殑鐢變釜浜猴紝緇勭粐錛屼互鍙婂晢涓氳蔣浠跺叕鍙稿紑鍙戠殑鍏嶈垂杞歡浜嗐?/p>

GPL鍗忚鐨勪富瑕佸唴瀹規槸鍙鍦ㄤ竴涓蔣浠朵腑浣跨敤(”浣跨敤”鎸囩被搴撳紩鐢紝淇敼鍚庣殑浠g爜鎴栬呰鐢熶唬鐮?GPL 鍗忚鐨勪駭鍝侊紝鍒欒杞歡浜у搧蹇呴』涔熼噰鐢℅PL鍗忚錛屾棦蹇呴』涔熸槸寮婧愬拰鍏嶈垂銆傝繖灝辨槸鎵璋撶殑”浼犳煋鎬?#8221;銆侴PL鍗忚鐨勪駭鍝佷綔涓轟竴涓崟鐙殑浜у搧浣跨敤娌℃湁浠諱綍闂錛岃繕鍙互浜彈鍏嶈垂鐨勪紭鍔褲?/p>

鐢變簬GPL涓ユ牸瑕佹眰浣跨敤浜咷PL綾誨簱鐨勮蔣浠朵駭鍝佸繀欏諱嬌鐢℅PL鍗忚錛屽浜庝嬌鐢℅PL鍗忚鐨勫紑婧愪唬鐮侊紝鍟嗕笟杞歡鎴栬呭浠g爜鏈変繚瀵嗚姹傜殑閮ㄩ棬灝變笉閫傚悎闆嗘垚/閲囩敤浣滀負綾誨簱鍜屼簩嬈″紑鍙戠殑鍩虹銆?/p>

鍏跺畠緇嗚妭濡傚啀鍙戝竷鐨勬椂鍊欓渶瑕佷即闅廏PL鍗忚絳夊拰BSD/Apache絳夌被浼箋?/p>

neter 2009-02-15 12:57 鍙戣〃璇勮
]]>
寮婧愬崗璁?-----Apache Licence 2.0http://m.shnenglu.com/xushaohua/archive/2009/02/15/73858.htmlneterneterSun, 15 Feb 2009 04:55:00 GMThttp://m.shnenglu.com/xushaohua/archive/2009/02/15/73858.htmlhttp://m.shnenglu.com/xushaohua/comments/73858.htmlhttp://m.shnenglu.com/xushaohua/archive/2009/02/15/73858.html#Feedback0http://m.shnenglu.com/xushaohua/comments/commentRss/73858.htmlhttp://m.shnenglu.com/xushaohua/services/trackbacks/73858.htmlApache Licence鏄憲鍚嶇殑闈炵泩鍒╁紑婧愮粍緇嘇pache閲囩敤鐨勫崗璁傝鍗忚鍜孊SD綾諱技錛屽悓鏍烽紦鍔變唬鐮佸叡浜拰灝婇噸鍘熶綔鑰呯殑钁椾綔鏉冿紝鍚屾牱鍏佽浠g爜淇敼錛屽啀鍙戝竷錛堜綔涓哄紑婧愭垨鍟嗕笟杞歡錛夈傞渶瑕佹弧瓚崇殑鏉′歡涔熷拰BSD綾諱技錛?/p>
  1. 闇瑕佺粰浠g爜鐨勭敤鎴蜂竴浠紸pache Licence
  2. 濡傛灉浣犱慨鏀逛簡浠g爜錛岄渶瑕佸啀琚慨鏀圭殑鏂囦歡涓鏄庛?
  3. 鍦ㄥ歡浼哥殑浠g爜涓紙淇敼鍜屾湁婧愪唬鐮佽鐢熺殑浠g爜涓級闇瑕佸甫鏈夊師鏉ヤ唬鐮佷腑鐨勫崗璁紝鍟嗘爣錛屼笓鍒╁0鏄庡拰鍏朵粬鍘熸潵浣滆呰瀹氶渶瑕佸寘鍚殑璇存槑銆?
  4. 濡傛灉鍐嶅彂甯冪殑浜у搧涓寘鍚竴涓狽otice鏂囦歡錛屽垯鍦∟otice鏂囦歡涓渶瑕佸甫鏈堿pache Licence銆備綘鍙互鍦∟otice涓鍔犺嚜宸辯殑璁稿彲錛屼絾涓嶅彲浠ヨ〃鐜頒負瀵笰pache Licence鏋勬垚鏇存敼銆?

Apache Licence涔熸槸瀵瑰晢涓氬簲鐢ㄥ弸濂界殑璁稿彲銆備嬌鐢ㄨ呬篃鍙互鍦ㄩ渶瑕佺殑鏃跺欎慨鏀逛唬鐮佹潵婊¤凍闇瑕佸茍浣滀負寮婧愭垨鍟嗕笟浜у搧鍙戝竷/閿鍞?/p>

neter 2009-02-15 12:55 鍙戣〃璇勮
]]>
寮婧愬崗璁?-----BSD寮婧愬崗璁?/title><link>http://m.shnenglu.com/xushaohua/archive/2009/02/15/73857.html</link><dc:creator>neter</dc:creator><author>neter</author><pubDate>Sun, 15 Feb 2009 04:54:00 GMT</pubDate><guid>http://m.shnenglu.com/xushaohua/archive/2009/02/15/73857.html</guid><wfw:comment>http://m.shnenglu.com/xushaohua/comments/73857.html</wfw:comment><comments>http://m.shnenglu.com/xushaohua/archive/2009/02/15/73857.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/xushaohua/comments/commentRss/73857.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xushaohua/services/trackbacks/73857.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 12pt">BSD寮婧愬崗璁槸涓涓粰浜庝嬌鐢ㄨ呭緢澶ц嚜鐢辯殑鍗忚銆傚熀鏈笂浣跨敤鑰呭彲浠?#8221;涓烘墍嬈蹭負”,鍙互鑷敱鐨勪嬌鐢紝淇敼婧愪唬鐮侊紝涔熷彲浠ュ皢淇敼鍚庣殑浠g爜浣滀負寮婧愭垨鑰呬笓鏈夎蔣浠跺啀鍙戝竷銆?/p> <p style="FONT-SIZE: 12pt">浣?#8221;涓烘墍嬈蹭負”鐨勫墠鎻愬綋浣犲彂甯冧嬌鐢ㄤ簡BSD鍗忚鐨勪唬鐮侊紝鎴栧垯浠SD鍗忚浠g爜涓哄熀紜鍋氫簩嬈″紑鍙戣嚜宸辯殑浜у搧鏃訛紝闇瑕佹弧瓚充笁涓潯浠訛細</p> <ol> <li>濡傛灉鍐嶅彂甯冪殑浜у搧涓寘鍚簮浠g爜錛屽垯鍦ㄦ簮浠g爜涓繀欏誨甫鏈夊師鏉ヤ唬鐮佷腑鐨凚SD鍗忚銆? <li>濡傛灉鍐嶅彂甯冪殑鍙槸浜岃繘鍒剁被搴?杞歡錛屽垯闇瑕佸湪綾誨簱/杞歡鐨勬枃妗e拰鐗堟潈澹版槑涓寘鍚師鏉ヤ唬鐮佷腑鐨凚SD鍗忚銆? <li>涓嶅彲浠ョ敤寮婧愪唬鐮佺殑浣滆?鏈烘瀯鍚嶅瓧鍜屽師鏉ヤ駭鍝佺殑鍚嶅瓧鍋氬競鍦烘帹騫褲?</li> </ol> <p style="FONT-SIZE: 12pt">BSD 浠g爜榧撳姳浠g爜鍏變韓錛屼絾闇瑕佸皧閲嶄唬鐮佷綔鑰呯殑钁椾綔鏉冦侭SD鐢變簬鍏佽浣跨敤鑰呬慨鏀瑰拰閲嶆柊鍙戝竷浠g爜錛屼篃鍏佽浣跨敤鎴栧湪BSD浠g爜涓婂紑鍙戝晢涓氳蔣浠跺彂甯冨拰閿鍞紝鍥犳鏄鍟嗕笟闆嗘垚寰堝弸濂界殑鍗忚銆傝屽緢澶氱殑鍏徃浼佷笟鍦ㄩ夌敤寮婧愪駭鍝佺殑鏃跺欓兘棣栭塀SD鍗忚錛屽洜涓哄彲浠ュ畬鍏ㄦ帶鍒惰繖浜涚涓夋柟鐨勪唬鐮侊紝鍦ㄥ繀瑕佺殑鏃跺欏彲浠ヤ慨鏀規垨鑰呬簩嬈″紑鍙戙?/p> <img src ="http://m.shnenglu.com/xushaohua/aggbug/73857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xushaohua/" target="_blank">neter</a> 2009-02-15 12:54 <a href="http://m.shnenglu.com/xushaohua/archive/2009/02/15/73857.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>BCD鐮?/title><link>http://m.shnenglu.com/xushaohua/archive/2007/12/24/39499.html</link><dc:creator>neter</dc:creator><author>neter</author><pubDate>Mon, 24 Dec 2007 04:34:00 GMT</pubDate><guid>http://m.shnenglu.com/xushaohua/archive/2007/12/24/39499.html</guid><wfw:comment>http://m.shnenglu.com/xushaohua/comments/39499.html</wfw:comment><comments>http://m.shnenglu.com/xushaohua/archive/2007/12/24/39499.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/xushaohua/comments/commentRss/39499.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xushaohua/services/trackbacks/39499.html</trackback:ping><description><![CDATA[鍗矪CD浠g爜銆侭inary-Coded Decimal‎錛岀畝縐癇CD錛岀ОBCD鐮佹垨浜?鍗佽繘鍒朵唬鐮侊紝浜︾О浜岃繘鐮佸崄榪涙暟銆傛槸涓縐?a target=_blank><u><font color=#0000ff>浜岃繘鍒?/font></u></a>鐨勬暟瀛楃紪鐮佸艦寮忥紝鐢ㄤ簩榪涘埗緙栫爜鐨?a target=_blank><u><font color=#0000ff>鍗佽繘鍒?/font></u></a>浠g爜銆傝繖縐嶇紪鐮佸艦寮忓埄鐢ㄤ簡鍥涗釜浣嶅厓鏉ュ偍瀛樹竴涓崄榪涘埗鐨勬暟鐮侊紝浣夸簩榪涘埗鍜屽崄榪涘埗涔嬮棿鐨勮漿鎹㈠緱浠ュ揩鎹風殑榪涜銆傝繖縐嶇紪鐮佹妧宸э紝鏈甯哥敤浜庝細璁$郴緇熺殑璁捐閲岋紝鍥犱負浼氳鍒跺害緇忓父闇瑕佸寰堥暱鐨勬暟瀛椾覆浣滃噯紜殑璁$畻銆傜浉瀵逛簬涓鑸殑嫻偣寮忚鏁版硶錛岄噰鐢˙CD鐮侊紝鏃㈠彲淇濆瓨鏁板肩殑綺劇‘搴︼紝鍙堝彲鍏嶅嵈浣跨數鑴戜綔嫻偣榪愮畻鏃舵墍鑰楄垂鐨勬椂闂淬傛澶栵紝瀵逛簬鍏朵粬闇瑕侀珮綺劇‘搴︾殑璁$畻錛孊CD緙栫爜浜﹀緢甯哥敤銆?br><br>鐢變簬鍗佽繘鍒舵暟鍏辨湁0銆?銆?銆?#8230;…銆?鍗佷釜鏁扮爜錛屽洜姝わ紝鑷沖皯闇瑕?浣嶄簩榪涘埗鐮佹潵琛ㄧず1浣嶅崄榪涘埗鏁般?浣嶄簩榪涘埗鐮佸叡鏈?^4=16縐嶇爜緇勶紝鍦ㄨ繖16縐嶄唬鐮佷腑錛屽彲浠ヤ換閫?0縐嶆潵琛ㄧず10涓崄榪涘埗鏁扮爜錛屽叡鏈塏=16錛?錛?6-10錛夛紒綰︾瓑浜?.9涔樹互10鐨?0嬈℃柟縐嶆柟妗堛傚父鐢ㄧ殑BCD浠g爜鍒椾簬鏈?br><br><strong>甯哥敤BCD緙栫爜鏂瑰紡</strong><br>鏈甯哥敤鐨凚CD緙栫爜錛屽氨鏄嬌鐢?0"鑷?9"榪欏崄涓暟鍊肩殑浜岃繘鐮佹潵琛ㄧず銆傝繖縐嶇紪鐮佹柟寮忥紝鍦ㄤ腑鍥藉ぇ闄嗙О涔嬩負“8421鐮?#8221;銆傞櫎姝や互澶栵紝瀵瑰簲涓嶅悓闇姹傦紝鍚勪漢浜﹀紑鍙戜簡涓嶅悓鐨勭紪鐮佹柟娉曪紝浠ラ傚簲涓嶅悓鐨勯渶姹傘傝繖浜涚紪鐮侊紝澶ц嚧鍙互鍒嗘垚鏈夋潈鐮佸拰鏃犳潈鐮佷袱縐嶏細<br><br>鏈夋潈BCD鐮侊紝濡傦細8421(鏈甯哥敤)銆?421銆?421… <br>鏃犳潈BCD鐮侊紝濡傦細浣?鐮併佹牸闆風爜… <br><br>甯哥敤<span>BCD緙栫爜琛?/span> <div align=center> <table cellSpacing=0 cellPadding=0 width="74%" border=1> <tbody> <tr> <td> <div align=center> <table cellSpacing=0 cellPadding=0 width=410 border=0> <tbody> <tr> <td width=90> <p> </p> </td> <td width=67> <p align=center><span>8421鐮?/span></p> </td> <td width=60> <p align=center><span>5421鐮?/span></p> </td> <td width=66> <p align=center><span>2421鐮?/span></p> </td> <td width=67> <p align=center><span>5211鐮?/span></p> </td> <td width=60> <p align=center><span>浣?span>3鐮?/span></span></p> </td> </tr> <tr> <td width=90> <p align=center><span>0</span></p> </td> <td width=67> <p align=center><span>0000</span></p> </td> <td width=60> <p align=center><span>0000</span></p> </td> <td width=66> <p align=center><span>0000</span></p> </td> <td width=67> <p align=center><span>0000</span></p> </td> <td width=60> <p align=center><span>0000</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>1</span></p> </td> <td width=67> <p align=center><span>0001</span></p> </td> <td width=60> <p align=center><span>0001</span></p> </td> <td width=66> <p align=center><span>0001</span></p> </td> <td width=67> <p align=center><span>0001</span></p> </td> <td width=60> <p align=center><span>0100</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>2</span></p> </td> <td width=67> <p align=center><span>0010</span></p> </td> <td width=60> <p align=center><span>0010</span></p> </td> <td width=66> <p align=center><span>0010</span></p> </td> <td width=67> <p align=center><span>0100</span></p> </td> <td width=60> <p align=center><span>0101</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>3</span></p> </td> <td width=67> <p align=center><span>0011</span></p> </td> <td width=60> <p align=center><span>0011</span></p> </td> <td width=66> <p align=center><span>0011</span></p> </td> <td width=67> <p align=center><span>0101</span></p> </td> <td width=60> <p align=center><span>0110</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>4</span></p> </td> <td width=67> <p align=center><span>0100</span></p> </td> <td width=60> <p align=center><span>0100</span></p> </td> <td width=66> <p align=center><span>0100</span></p> </td> <td width=67> <p align=center><span>0111</span></p> </td> <td width=60> <p align=center><span>0111</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>5</span></p> </td> <td width=67> <p align=center><span>0101</span></p> </td> <td width=60> <p align=center><span>1000</span></p> </td> <td width=66> <p align=center><span>0101</span></p> </td> <td width=67> <p align=center><span>1000</span></p> </td> <td width=60> <p align=center><span>1000</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>6</span></p> </td> <td width=67> <p align=center><span>0110</span></p> </td> <td width=60> <p align=center><span>1001</span></p> </td> <td width=66> <p align=center><span>0110</span></p> </td> <td width=67> <p align=center><span>1001</span></p> </td> <td width=60> <p align=center><span>1001</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>7</span></p> </td> <td width=67> <p align=center><span>0111</span></p> </td> <td width=60> <p align=center><span>1010</span></p> </td> <td width=66> <p align=center><span>0111</span></p> </td> <td width=67> <p align=center><span>1100</span></p> </td> <td width=60> <p align=center><span>1010</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>8</span></p> </td> <td width=67> <p align=center><span>1000</span></p> </td> <td width=60> <p align=center><span>1011</span></p> </td> <td width=66> <p align=center><span>1110</span></p> </td> <td width=67> <p align=center><span>1101</span></p> </td> <td width=60> <p align=center><span>1011</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>9</span></p> </td> <td width=67> <p align=center><span>1001</span></p> </td> <td width=60> <p align=center><span>1100</span></p> </td> <td width=66> <p align=center><span>1111</span></p> </td> <td width=67> <p align=center><span>1111</span></p> </td> <td width=60> <p align=center><span>1100</span></p> </td> </tr> <tr> <td width=90> <p align=center><span>鏉?/span></p> </td> <td width=67> <p align=center><span>8421</span></p> </td> <td width=60> <p align=center><span>5421</span></p> </td> <td width=66> <p align=center><span>2421</span></p> </td> <td width=67> <p align=center><span>5211</span></p> </td> <td width=60> <p> </p> </td> </tr> </tbody> </table> </div> <p> </p> </td> </tr> </tbody> </table> </div> <span><font size=3>闈炲帇緙╁紡鍜屽帇緙╁紡BCD鐮?br>    BCD鍙堝垎涓轟袱縐嶏紝闈炲帇緙╁紡鍜屽帇緙╁紡涓ょ銆?br>    鍓嶉潰榪欑81瀛樻垚 “08,01” 鏄潪鍘嬬緝寮忥紝鑰屽帇緙╁紡浼氬瓨鎴?“81h” (鐩存帴浠ュ崄鍏繘鍒跺偍瀛?銆傞潪鍘嬬緝鐨凚CD鐮佸彧鏈変綆鍥涗綅鏈夋晥錛岃屽帇緙╃殑BCD鐮佸垯灝嗛珮鍥涗綅涔熺敤涓婁簡錛屽氨鏄涓涓瓧鑺傛湁涓や釜BCD鐮併侭CD鏄敤0鍜?琛ㄧず鍗佽繘鍒訛紝濡?000琛ㄧず0錛?001琛ㄧず1錛?010琛ㄧず2銆傝屽帇緙╃殑BCD鏄敤00琛ㄧず0錛?1琛ㄧず1錛?0琛ㄧず2錛?10琛ㄧず3絳夈?br>    渚嬶細<br>    1234琛ㄧず鎴愰潪鍘嬬緝鐨凚CD鐮佹槸00000001000000100000001100000100錛屼篃灝辨槸0x01020304錛涜屽帇緙〣CD鐮佸垯琛ㄧず鎴?001001000110100錛屼篃灝辨槸0x1234銆?br>    浣嗗帇緙╃殑BCD騫朵笉鍥哄畾錛屽彲鐪嬫儏鍐佃屽畾錛屾墍瑕佺殑灝辨槸鐢ㄦ渶灝戠殑浣嶆暟琛ㄧず灝藉彲鑳藉鐨勬暟銆?/font><br></span> <img src ="http://m.shnenglu.com/xushaohua/aggbug/39499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xushaohua/" target="_blank">neter</a> 2007-12-24 12:34 <a href="http://m.shnenglu.com/xushaohua/archive/2007/12/24/39499.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞緙栧啓楂樻晥鐨勬暟鎹簱榪炴帴姹?/title><link>http://m.shnenglu.com/xushaohua/archive/2007/12/21/39172.html</link><dc:creator>neter</dc:creator><author>neter</author><pubDate>Thu, 20 Dec 2007 17:42:00 GMT</pubDate><guid>http://m.shnenglu.com/xushaohua/archive/2007/12/21/39172.html</guid><wfw:comment>http://m.shnenglu.com/xushaohua/comments/39172.html</wfw:comment><comments>http://m.shnenglu.com/xushaohua/archive/2007/12/21/39172.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/xushaohua/comments/commentRss/39172.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xushaohua/services/trackbacks/39172.html</trackback:ping><description><![CDATA[<p><font face="Times New Roman" size=2>鐩稿叧鎶鏈細</font></p> <ul> <li><font face="Times New Roman" size=2>榪炴帴姹?/font> <li><font face="Times New Roman" size=2>寮曠敤璁版暟</font> <li><font face="Times New Roman" size=2>澶氱嚎紼?/font> <li><font face="Times New Roman" size=2>Timer綾昏繍琛屽熀鐞?/font> <li><font face="Times New Roman" size=2>C#.Net</font>   </li> </ul> <p><font face="Times New Roman" size=2>閫傚疁浜虹兢</font></p> <ul> <li><font face="Times New Roman" size=2>鏁版嵁搴撳簲鐢ㄧ▼搴忕▼搴忓憳</font> <li><font face="Times New Roman" size=2>緋葷粺鍒嗘瀽鍛?/font> <li><font face="Times New Roman" size=2>妯″潡璁捐甯?/font> <li>鏈変竴瀹氬姛搴曠殑紼嬪簭鍛?</li> </ul> <p>鐩綍</p> <ul> <li><font size=2>寮曡█</font> <ol> <li><font face="Times New Roman" size=2>鏁版嵁搴撹繛鎺ユ睜錛圕onnection Pool錛夌殑宸ヤ綔鍘熺悊</font> </li> </ol> <li><font face="Times New Roman" size=2>榪炴帴姹犲叧閿棶棰樺垎鏋?/font> <ol> <li><font face="Times New Roman" size=2>騫跺彂闂</font> <li><font face="Times New Roman" size=2>浜嬪姟澶勭悊</font> <li><font face="Times New Roman" size=2>榪炴帴姹犵殑鍒嗛厤涓庨噴鏀?/font> <li><font face="Times New Roman" size=2>榪炴帴姹犵殑閰嶇疆涓庣淮鎶?/font> </li> </ol> <li> <div align=left><font face="Times New Roman" size=2>鍏抽敭璁</font></div> <ol> <li> <div align=left><font face="Times New Roman" size=2>寮曠敤璁版暟</font></div> <li> <div align=left>濡備綍瀹炵幇浜嬪姟澶勭悊</div> <li> <div align=left> <div align=left> 綆$悊榪炴帴姹?/div> </div> </li> </ol> <li> <div align=left> <div align=left>緇撳悎浠g爜璇存槑</div> </div> <ol> <li> <div align=left>鏋勯犳柟娉?/div> <li> <div align=left><font size=2>鍚姩鏈嶅姟StartService</font></div> <li> <div align=left><font size=2>鍋滄鏈嶅姟StopService</font></div> <li> <div align=left><font size=2>鐢寵 GetConnectionFormPool</font></div> <li> <div align=left><font size=2>閲婃斁DisposeConnection</font></div> <li> <div align=left><font size=2>濡備綍鏇存柊灞炴?/font></div> <li> <div align=left><font size=2>濡備綍紜畾榪炴帴鏄惁澶辨晥</font></div> <li> <div align=left><font size=2>浣跨敤綰跨▼綆$悊榪炴帴姹?/font></div> <ol> <li> <div align=left><font size=2>threadCreate</font></div> <li> <div align=left><font size=2>threadCheck</font></div> </li> </ol> <li> <div align=left><font size=2></font> <p> <font size=2>鍏朵粬</font></p> </div> </li> </ol> </li> </ul> <hr> <p><font color=#ff0000 size=3>寮曡█</font></p> <p><font face="Times New Roman" size=2>涓鑸殑鏁版嵁搴撳簲鐢ㄧ▼搴忓ぇ鑷撮兘閬靛驚涓嬮潰鐨勬楠?</font></p> <ol> <li><font face="Times New Roman"><font size=2><font color=#ff99cc>鍒濆鍖栫▼搴?/font> </font></font> <li><font face="Times New Roman"><font size=2><font color=#ff99cc>鐢ㄦ埛鍦║I涓婅緭鍏ユ搷浣?/font> </font></font> <li><font face="Times New Roman"><font size=2><font color=#ff99cc>鐢辯敤鎴鋒搷浣滀駭鐢熸暟鎹簱鎿嶄綔</font> </font></font> <li><font face="Times New Roman"><font size=2><font color=#ff99cc>灝嗘暟鎹簱鎿嶄綔閫掍氦鍒版暟鎹簱鏈嶅姟鍣?/font> </font></font> <li><font face="Times New Roman"><font color=#ff99cc size=2>.... (閲嶅2~4)</font></font> <li><font face="Times New Roman"><font size=2><font color=#ff99cc>鍏抽棴搴旂敤紼嬪簭</font> </font></font></li> </ol> <p><font face="Times New Roman" size=2>銆銆鑰屾湰鏂囧垯鐫閲嶈瑙d笂闈㈢<font color=#ff0000>4</font>姝ラ.鍦ㄧ潃涓姝ラ涓垜浠粡甯告槸,鎵撳紑鏁版嵁搴撹繛鎺ユ搷浣滄暟鎹簱,鏈鍚庡叧闂暟鎹簱.<br></font><font face="Times New Roman" size=2>銆銆鍦ㄦ湇鍔″櫒绔▼搴忚璁′笂涓庢暟鎹簱鐨勬搷浣滄樉寰楀崄鍒嗛噸瑕?鍥犱負浣犺澶勭悊鐨勬暟鎹搷浣滃崄鍒嗗法澶?濡傛灉棰戠箒鍒涘緩鏁版嵁搴撹繛鎺ラ綣佸叧闂暟鎹簱榪炴帴鍒欎細寮曡搗鏁堢巼浣庝笅鐢氳嚦寮曞彂紼嬪簭宕╂簝.<br>銆銆涔熻鎴戜滑鍙互鏈夊彟涓縐嶆搷浣滄暟鎹簱鐨勫艦寮?鎴戜滑鍙互鍦ㄧ▼搴忚繍琛屾椂鎵撳紑涓涓暟鎹簱榪炴帴,璁╄繖涓繛鎺ユ案涔呭瓨鍦ㄧ洿鍒扮▼搴?姝諱骸',閭d箞榪欐牱鍋氫篃鏈変笉瀹夊叏闅愭偅,鎴戜滑鐭ラ亾涓涓璞″瓨鍦ㄦ椂闂磋秺闀挎垨琚嬌鐢ㄦ鏁拌秺澶氬垯瀹冭〃鐜扮殑瓚婁笉紼沖畾,鐫涓嶇ǔ瀹氬洜绱犳槸鐢變簬瀵硅薄鍐呴儴鍙兘瀛樺湪鐨勬綔鍦ㄨ璁¢棶棰樹駭鐢?瀵逛簬鏁版嵁搴撹繛鎺ュ璞¢亾鐞嗕篃涓鏍?鎴戜滑涓嶈兘淇濊瘉涓涓狢onnection瀵硅薄閲岄潰鑳戒竴鐐歸棶棰樹笉瀛樺湪.鎵浠ユ垜浠篃涓嶆暍闀挎椂闂村皢瀹冮暱鏃墮棿鍗犵敤鍐呭瓨.<br></font><font face="Times New Roman" size=2>銆銆鏃㈢劧鏈夎繖涔堝鐨勯棶棰樼敱姝ゆ垜浠渶瑕佷竴涓兘甯垜浠淮鎶ゆ暟鎹簱榪炴帴鐨勪笢瑗?瀹冨氨鏄?font color=#ff0000>榪炴帴姹?/font>,緗戜笂鏈夊緢澶氱殑榪炴帴姹犱緥瀛?浣嗘槸澶氭暟閮芥槸綆鍗曠殑渚嬪瓙,鎴栬呬粙緇嶆瘮杈冨鏉傜殑榪炴帴姹犲師鐞?娌℃湁涓涓瘮杈冨畬鏁翠粙緇嶅拰瀹炵幇榪炴帴姹犵殑渚嬪瓙.榪欓噷灝變粙緇嶄綘濡備綍鑷繁鍒朵綔涓涓繛鎺ユ睜.<br></font><font face="Times New Roman" size=2>銆銆瀵逛簬鍏變韓璧勬簮錛屾湁涓涓緢钁楀悕鐨勮璁℃ā寮忥細璧勬簮姹狅紙Resource Pool錛夈傝妯″紡姝f槸涓轟簡瑙e喅璧勬簮鐨勯綣佸垎閰嶏箲閲婃斁鎵閫犳垚鐨勯棶棰樸備負瑙e喅鎴戜滑鐨勯棶棰橈紝鍙互閲囩敤鏁版嵁搴撹繛鎺ユ睜鎶鏈傛暟鎹簱榪炴帴姹犵殑鍩烘湰鎬濇兂灝辨槸涓烘暟鎹簱榪炴帴寤虹珛涓涓?#8220;緙撳啿姹?#8221;銆傞鍏堝湪緙撳啿姹犱腑鏀懼叆涓瀹氭暟閲忕殑榪炴帴錛屽綋闇瑕佸緩绔嬫暟鎹簱榪炴帴鏃訛紝鍙渶浠?#8220;緙撳啿姹?#8221;涓彇鍑轟竴涓紝浣跨敤瀹屾瘯涔嬪悗鍐嶆斁鍥炲幓銆傛垜浠彲浠ラ氳繃璁懼畾榪炴帴姹犳渶澶ц繛鎺ユ暟鏉ラ槻姝㈢郴緇熸棤灝界殑涓庢暟鎹簱榪炴帴銆傛洿涓洪噸瑕佺殑鏄垜浠彲浠ラ氳繃榪炴帴姹犵殑綆$悊鏈哄埗鐩戣鏁版嵁搴撶殑榪炴帴鐨勬暟閲忥箲浣跨敤鎯呭喌錛屼負緋葷粺寮鍙戯箲嫻嬭瘯鍙婃ц兘璋冩暣鎻愪緵渚濇嵁銆傝繛鎺ユ睜鐨勫熀鏈伐浣滃師鐞嗚涓嬪浘銆?/font></p> <p align=center><font face="Times New Roman" size=3>鏁版嵁搴撹繛鎺ユ睜錛圕onnection Pool錛夌殑宸ヤ綔鍘熺悊</font></p> <p align=center><font face="Times New Roman" size=2><img height=227 alt="" src="http://www.mx68.com/WebDeveloper/UploadFiles_5122/200601/2006118234027410.gif" width=563></font></p> <p align=left><font face="Times New Roman" size=2><font face=Arial color=#ff0000 size=3></font></font></p> <p><font color=#ff0000 size=3> 榪炴帴姹犲叧閿棶棰樺垎鏋?/font></p> <p align=left><font face="Times New Roman" size=2>銆銆1銆佸茍鍙戦棶棰?/font></p> <p align=left><font face="Times New Roman" size=2>銆銆涓轟簡浣胯繛鎺ョ鐞嗘湇鍔″叿鏈夋渶澶х殑閫氱敤鎬э紝蹇呴』鑰冭檻澶氱嚎紼嬬幆澧冿紝鍗沖茍鍙戦棶棰樸傝繖涓棶棰樼浉瀵規瘮杈冨ソ瑙e喅錛屽洜涓哄悇涓璦鑷韓鎻愪緵浜嗗騫跺彂綆$悊鐨勬敮鎸佸儚java,c#絳夌瓑錛屼嬌鐢╯ynchronized(java)lock(C#)鍏抽敭瀛楀嵆鍙‘淇濈嚎紼嬫槸鍚屾鐨勩備嬌鐢ㄦ柟娉曞彲浠ュ弬鑰冿紝鐩稿叧鏂囩尞銆?/font></p> <p align=left><font face="Times New Roman" size=2>銆銆錛掋佷簨鍔″鐞?/font></p> <p align=left><font face="Times New Roman" size=2>銆銆鎴戜滑鐭ラ亾錛屼簨鍔″叿鏈夊師瀛愭э紝姝ゆ椂瑕佹眰瀵規暟鎹簱鐨勬搷浣滅鍚?#8220;ALL-ALL-NOTHING”鍘熷垯,鍗沖浜庝竴緇凷QL璇彞瑕佷箞鍏ㄥ仛錛岃涔堝叏涓嶅仛銆?br></font><font face="Times New Roman" size=2>銆銆鎴戜滑鐭ラ亾褰擄紥涓嚎紼嬪叕鐢ㄤ竴涓繛鎺onnection瀵硅薄錛岃屼笖鍚勮嚜閮芥湁鑷繁鐨勪簨鍔¤澶勭悊鏃跺欙紝瀵逛簬榪炴帴姹犳槸涓涓緢澶寸柤鐨勯棶棰橈紝鍥犱負鍗充嬌Connection綾繪彁渚涗簡鐩稿簲鐨勪簨鍔℃敮鎸侊紝鍙槸鎴戜滑浠嶇劧涓嶈兘紜畾閭d釜鏁版嵁搴撴搷浣滄槸瀵瑰簲閭d釜浜嬪姟鐨勶紝榪欐槸鐢變簬鎴戜滑鏈夛紥涓嚎紼嬮兘鍦ㄨ繘琛屼簨鍔℃搷浣滆屽紩璧風殑銆備負姝ゆ垜浠彲浠ヤ嬌鐢?/font><font face="Times New Roman" size=2>姣忎竴涓簨鍔$嫭鍗犱竴涓繛鎺ユ潵瀹炵幇錛岃櫧鐒惰繖縐嶆柟娉曟湁鐐規氮璐硅繛鎺ユ睜璧勬簮浣嗘槸鍙互澶уぇ闄嶄綆浜嬪姟綆$悊鐨勫鏉傛с?/font></p> <p align=left><font face="Times New Roman" size=2>銆銆錛撱佽繛鎺ユ睜鐨勫垎閰嶄笌閲婃斁</font></p> <p align=left><font face="Times New Roman" size=2>銆銆榪炴帴姹犵殑鍒嗛厤涓庨噴鏀撅紝瀵圭郴緇熺殑鎬ц兘鏈夊緢澶х殑褰卞搷銆傚悎鐞嗙殑鍒嗛厤涓庨噴鏀撅紝鍙互鎻愰珮榪炴帴鐨勫鐢ㄥ害錛屼粠鑰岄檷浣庡緩绔嬫柊榪炴帴鐨勫紑閿錛屽悓鏃惰繕鍙互鍔犲揩鐢ㄦ埛鐨勮闂熷害銆?br></font><font face="Times New Roman" size=2>銆銆瀵逛簬榪炴帴鐨勭鐞嗗彲浣跨敤涓涓狶ist銆傚嵆鎶婂凡緇忓垱寤虹殑榪炴帴閮芥斁鍏ist涓幓緇熶竴綆$悊銆傛瘡褰撶敤鎴瘋姹備竴涓繛鎺ユ椂錛岀郴緇熸鏌ヨ繖涓狶ist涓湁娌℃湁鍙互鍒嗛厤鐨勮繛鎺ャ傚鏋滄湁灝辨妸閭d釜鏈鍚堥傜殑榪炴帴鍒嗛厤緇欎粬<font color=#339966>錛堝浣曡兘鎵懼埌鏈鍚堥傜殑榪炴帴鏂囩珷灝嗗湪鍏抽敭璁涓寚鍑?/font>錛夛紱濡傛灉娌℃湁灝辨姏鍑轟竴涓紓甯哥粰鐢ㄦ埛錛孡ist涓繛鎺ユ槸鍚﹀彲浠ヨ鍒嗛厤鐢變竴涓嚎紼嬫潵涓撻棬綆$悊鎹庡悗鎴戜細浠嬬粛榪欎釜綰跨▼鐨勫叿浣撳疄鐜般?</font></p> <p> <font face="Times New Roman" size=2>銆銆錛斻佽繛鎺ユ睜鐨勯厤緗笌緇存姢</font></p> <p align=left><font face="Times New Roman" size=2>銆銆榪炴帴姹犱腑鍒板簳搴旇鏀劇疆澶氬皯榪炴帴錛屾墠鑳戒嬌緋葷粺鐨勬ц兘鏈浣籌紵緋葷粺鍙噰鍙栬緗渶灝忚繛鎺ユ暟錛坢inConnection錛夊拰鏈澶ц繛鎺ユ暟錛坢axConnection錛夌瓑鍙傛暟鏉ユ帶鍒惰繛鎺ユ睜涓殑榪炴帴銆傛瘮鏂硅錛屾渶灝忚繛鎺ユ暟鏄郴緇熷惎鍔ㄦ椂榪炴帴姹犳墍鍒涘緩鐨勮繛鎺ユ暟銆傚鏋滃垱寤鴻繃澶氾紝鍒欑郴緇熷惎鍔ㄥ氨鎱紝浣嗗垱寤哄悗緋葷粺鐨勫搷搴旈熷害浼氬緢蹇紱濡傛灉鍒涘緩榪囧皯錛屽垯緋葷粺鍚姩鐨勫緢蹇紝鍝嶅簲璧鋒潵鍗存參銆傝繖鏍鳳紝鍙互鍦ㄥ紑鍙戞椂錛岃緗緝灝忕殑鏈灝忚繛鎺ユ暟錛屽紑鍙戣搗鏉ヤ細蹇紝鑰屽湪緋葷粺瀹為檯浣跨敤鏃惰緗緝澶х殑錛屽洜涓鴻繖鏍峰璁塊棶瀹㈡埛鏉ヨ閫熷害浼氬揩浜涖傛渶澶ц繛鎺ユ暟鏄繛鎺ユ睜涓厑璁歌繛鎺ョ殑鏈澶ф暟鐩紝鍏蜂綋璁劇疆澶氬皯錛岃鐪嬬郴緇熺殑璁塊棶閲忥紝鍙氳繃杞歡闇姹備笂寰楀埌銆?br></font><font face="Times New Roman" size=2>銆銆濡備綍紜繚榪炴帴姹犱腑鐨勬渶灝忚繛鎺ユ暟鍛紵鏈夊姩鎬佸拰闈欐佷袱縐嶇瓥鐣ャ傚姩鎬佸嵆姣忛殧涓瀹氭椂闂村氨瀵硅繛鎺ユ睜榪涜媯嫻嬶紝濡傛灉鍙戠幇榪炴帴鏁伴噺灝忎簬鏈灝忚繛鎺ユ暟錛屽垯琛ュ厖鐩稿簲鏁伴噺鐨勬柊榪炴帴,浠ヤ繚璇佽繛鎺ユ睜鐨勬甯歌繍杞傞潤鎬佹槸鍙戠幇絀洪棽榪炴帴涓嶅鏃跺啀鍘繪鏌ャ?</font></p> <img src ="http://m.shnenglu.com/xushaohua/aggbug/39172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xushaohua/" target="_blank">neter</a> 2007-12-21 01:42 <a href="http://m.shnenglu.com/xushaohua/archive/2007/12/21/39172.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[MSDN]浣跨敤榪炴帴姹?/title><link>http://m.shnenglu.com/xushaohua/archive/2007/12/21/39171.html</link><dc:creator>neter</dc:creator><author>neter</author><pubDate>Thu, 20 Dec 2007 17:33:00 GMT</pubDate><guid>http://m.shnenglu.com/xushaohua/archive/2007/12/21/39171.html</guid><wfw:comment>http://m.shnenglu.com/xushaohua/comments/39171.html</wfw:comment><comments>http://m.shnenglu.com/xushaohua/archive/2007/12/21/39171.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/xushaohua/comments/commentRss/39171.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xushaohua/services/trackbacks/39171.html</trackback:ping><description><![CDATA[<div id="hvzpftn" class=title>浣跨敤榪炴帴姹?!----></div> <!--content type: DocStudio. Transform: devdiv2mtps.xslt.--> <div class="hvzpftn" id=mainSection> <div class="hvzpftn" id=mainBody> <p> <p>榪炴帴鍒版暟鎹簱鏈嶅姟鍣ㄩ氬父鐢卞嚑涓渶瑕佸緢闀挎椂闂寸殑姝ラ緇勬垚銆傚繀欏誨緩绔嬬墿鐞嗛氶亾錛堜緥濡傚鎺ュ瓧鎴栧懡鍚嶇閬擄級錛屽繀欏諱笌鏈嶅姟鍣ㄨ繘琛屽垵嬈℃彙鎵嬶紝蹇呴』鍒嗘瀽榪炴帴瀛楃涓蹭俊鎭紝蹇呴』鐢辨湇鍔″櫒瀵硅繛鎺ヨ繘琛岃韓浠介獙璇侊紝蹇呴』榪愯媯鏌ヤ互渚垮湪褰撳墠浜嬪姟涓櫥璁幫紝絳夌瓑銆?</p> <p>瀹為檯涓婏紝澶у鏁板簲鐢ㄧ▼搴忎粎浣跨敤涓涓垨鍑犱釜涓嶅悓鐨勮繛鎺ラ厤緗傝繖鎰忓懗鐫鍦ㄦ墽琛屽簲鐢ㄧ▼搴忔湡闂達紝璁稿鐩稿悓鐨勮繛鎺ュ皢鍙嶅鍦版墦寮鍜屽叧闂備負浜嗕嬌鎵撳紑鐨勮繛鎺ユ垚鏈渶浣庯紝ADO.NET 浣跨敤縐頒負<em>榪炴帴姹?/em>鐨勪紭鍖栨柟娉曘?/p> <p>榪炴帴姹犲噺灝戞柊榪炴帴闇瑕佹墦寮鐨勬鏁般?em>姹犺繘紼?/em>淇濇寔鐗╃悊榪炴帴鐨勬墍鏈夋潈銆傞氳繃涓烘瘡涓粰瀹氱殑榪炴帴閰嶇疆淇濈暀涓緇勬椿鍔ㄨ繛鎺ユ潵綆$悊榪炴帴銆傚彧瑕佺敤鎴峰湪榪炴帴涓婅皟鐢?Open錛屾睜榪涚▼灝變細媯鏌ユ睜涓槸鍚︽湁鍙敤鐨勮繛鎺ャ傚鏋滄煇涓睜榪炴帴鍙敤錛屼細灝嗚榪炴帴榪斿洖緇欒皟鐢ㄨ咃紝鑰屼笉鏄墦寮鏂拌繛鎺ャ傚簲鐢ㄧ▼搴忓湪璇ヨ繛鎺ヤ笂璋冪敤 Close 鏃訛紝姹犺繘紼嬩細灝嗚繛鎺ヨ繑鍥炲埌媧誨姩榪炴帴姹犻泦涓紝鑰屼笉鏄湡姝e叧闂繛鎺ャ傝繛鎺ヨ繑鍥炲埌姹犱腑涔嬪悗錛屽嵆鍙湪涓嬩竴涓?Open 璋冪敤涓噸澶嶄嬌鐢ㄣ?/p> <p>鍙湁閰嶇疆鐩稿悓鐨勮繛鎺ュ彲浠ュ緩绔嬫睜榪炴帴銆侫DO.NET 鍚屾椂淇濈暀澶氫釜姹狅紝姣忎釜閰嶇疆涓涓睜銆傝繛鎺ョ敱榪炴帴瀛楃涓蹭互鍙?Windows 鏍囪瘑錛堝湪浣跨敤闆嗘垚鐨勫畨鍏ㄦф椂錛夊垎涓哄涓睜銆?/p> <p>姹犺繛鎺ュ彲浠ュぇ澶ф彁楂樺簲鐢ㄧ▼搴忕殑鎬ц兘鍜屽彲緙╂斁鎬с傞粯璁ゆ儏鍐典笅錛孉DO.NET 涓惎鐢ㄨ繛鎺ユ睜銆傞櫎闈炴樉寮忕鐢紝鍚﹀垯錛岃繛鎺ュ湪搴旂敤紼嬪簭涓墦寮鍜屽叧闂椂錛屾睜榪涚▼灝嗗榪炴帴榪涜浼樺寲銆傝繕鍙互鎻愪緵鍑犱釜榪炴帴瀛楃涓蹭慨楗扮鏉ユ帶鍒惰繛鎺ユ睜鐨勮涓恒傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙佹湰涓婚鍚庨潰鐨?#8220;浣跨敤榪炴帴瀛楃涓插叧閿瓧鎺у埗榪炴帴姹?#8221;銆?/p> <h1 class=heading>姹犵殑鍒涘緩鍜屽垎閰?/h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection0> <p>鍦ㄥ垵嬈℃墦寮榪炴帴鏃訛紝灝嗘牴鎹畬鍏ㄥ尮閰嶇畻娉曞垱寤鴻繛鎺ユ睜錛岃綆楁硶灝嗘睜涓庤繛鎺ヤ腑鐨勮繛鎺ュ瓧絎︿覆鍏寵仈銆傛瘡涓繛鎺ユ睜涓庝笉鍚岀殑榪炴帴瀛楃涓插叧鑱斻傛墦寮鏂拌繛鎺ユ椂錛屽鏋滆繛鎺ュ瓧絎︿覆騫墮潪涓庣幇鏈夋睜瀹屽叏鍖歸厤錛屽皢鍒涘緩涓涓柊姹犮傛寜榪涚▼銆佹寜搴旂敤紼嬪簭鍩熴佹寜榪炴帴瀛楃涓蹭互鍙婏紙鍦ㄤ嬌鐢ㄩ泦鎴愮殑瀹夊叏鎬ф椂錛夋寜 Windows 鏍囪瘑鏉ュ緩绔嬫睜榪炴帴銆?/p> <p>鍦ㄤ互涓?C# 紺轟緥涓垱寤轟簡涓変釜鏂扮殑 <a id=ctl00_rs1_mainContentContainer_ctl01 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl01',this);" tabIndex=0 ><u><font color=#0000ff>SqlConnection</font></u></a> 瀵硅薄錛屼絾鏄鐞嗘椂鍙渶瑕佷袱涓繛鎺ユ睜銆傛敞鎰忥紝鏍規嵁涓?<tt>Initial Catalog</tt> 鍒嗛厤鐨勫鹼紝絎竴涓拰絎簩涓繛鎺ュ瓧絎︿覆鏈夋墍涓嶅悓銆?/p> <div id="hvzpftn" class=code id=ctl00_rs1_mainContentContainer_ctl02_other> <pre class=code id=ctl00_rs1_mainContentContainer_ctl02other space="preserve">using (SqlConnection connection = new SqlConnection( "Integrated Security=SSPI;Initial Catalog=Northwind")) { connection.Open(); // Pool A is created. } using (SqlConnection connection = new SqlConnection( "Integrated Security=SSPI;Initial Catalog=pubs")) { connection.Open(); // Pool B is created because the connection strings differ. } using (SqlConnection connection = new SqlConnection( "Integrated Security=SSPI;Initial Catalog=Northwind")) { connection.Open(); // The connection string matches pool A. }</pre> </div> <p>濡傛灉 MinPoolSize 鍦ㄨ繛鎺ュ瓧絎︿覆涓湭鎸囧畾鎴栨寚瀹氫負闆訛紝姹犱腑鐨勮繛鎺ュ皢鍦ㄤ竴孌墊椂闂翠笉媧誨姩鍚庡叧闂備絾鏄紝濡傛灉鎸囧畾鐨?MinPoolSize 澶т簬闆訛紝鍦?AppDomain 琚嵏杞藉茍涓旇繘紼嬬粨鏉熶箣鍓嶏紝榪炴帴姹犱笉浼氳鐮村潖銆傞潪媧誨姩鎴栫┖姹犵殑緇存姢鍙渶瑕佹渶灝戠殑緋葷粺寮閿銆?/p> <div id="hvzpftn" class=alert> <table width="100%"> <tbody> <tr> <th align=left><img class=note alt=Note src="http://msdn2.microsoft.com/zh-cn/library/8xx3tyca.note(zh-cn,VS.80).gif">娉ㄦ剰</th> </tr> <tr> <td> <p>濡傛灉鍙戠敓鑷村懡閿欒錛堜緥濡傛晠闅滆漿縐繪垨娉ㄥ唽琛ㄤ腑鐨勫埆鍚嶆洿鏀癸級錛屾睜灝嗚嚜鍔ㄦ竻闄ゃ?/p> </td> </tr> </tbody> </table> </div> </div> <h1 class=heading>娣誨姞榪炴帴</h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection1> <p>榪炴帴姹犳槸涓烘瘡涓敮涓鐨勮繛鎺ュ瓧絎︿覆鍒涘緩鐨勩傚綋鍒涘緩涓涓睜鍚庯紝灝嗗垱寤哄涓繛鎺ュ璞″茍灝嗗叾娣誨姞鍒拌姹犱腑錛屼互婊¤凍鏈灝忔睜澶у皬鐨勮姹傘傝繛鎺ユ牴鎹渶瑕佹坊鍔犲埌姹犱腑錛屼絾鏄笉鑳借秴榪囨寚瀹氱殑鏈澶ф睜澶у皬錛堥粯璁ゅ間負 100錛夈傝繛鎺ュ湪鍏抽棴鎴栨柇寮鏃墮噴鏀懼洖姹犱腑銆?</p> <p>鍦ㄨ姹?SqlConnection 瀵硅薄鏃訛紝濡傛灉瀛樺湪鍙敤鐨勮繛鎺ワ紝灝嗕粠姹犱腑鑾峰彇璇ュ璞°傝繛鎺ヨ鍙敤錛屽繀欏繪湭浣跨敤錛屽叿鏈夊尮閰嶇殑浜嬪姟涓婁笅鏂囨垨鏈笌浠諱綍浜嬪姟涓婁笅鏂囧叧鑱旓紝騫朵笖鍏鋒湁涓庢湇鍔″櫒鐨勬湁鏁堥摼鎺ャ?/p> <p>榪炴帴姹犺繘紼嬮氳繃鍦ㄨ繛鎺ラ噴鏀懼洖姹犱腑鏃墮噸鏂板垎閰嶈繛鎺ワ紝鏉ユ弧瓚寵繖浜涜繛鎺ヨ姹傘傚鏋滃凡杈懼埌鏈澶ф睜澶у皬涓斾笉瀛樺湪鍙敤鐨勮繛鎺ワ紝鍒欒璇鋒眰灝嗕細鎺掗槦銆傜劧鍚庯紝姹犺繘紼嬪皾璇曢噸鏂板緩绔嬩換浣曡繛鎺ワ紝鐩村埌鍒拌揪瓚呮椂鏃墮棿錛堥粯璁ゅ間負 15 縐掞級銆傚鏋滄睜榪涚▼鍦ㄨ繛鎺ヨ秴鏃朵箣鍓嶆棤娉曟弧瓚寵姹傦紝灝嗗紩鍙戝紓甯搞?</p> <div id="hvzpftn" class=alert> <table width="100%"> <tbody> <tr> <th align=left><img class=note alt="Caution note" src="http://msdn2.microsoft.com/zh-cn/library/8xx3tyca.Caution(zh-cn,VS.80).gif">璀﹀憡</th> </tr> <tr> <td> <p>鎴戜滑寤鴻鎮ㄥ湪浣跨敤瀹岃繛鎺ユ椂涓瀹氳鍏抽棴榪炴帴錛屼互渚胯繛鎺ュ彲浠ヨ繑鍥炴睜銆傝鍏抽棴榪炴帴錛屽彲浠ヤ嬌鐢?Connection 瀵硅薄鐨?Close 鎴?Dispose 鏂規硶錛屼篃鍙互閫氳繃鍦?C# 鐨?using 璇彞涓垨鍦?Visual Basic 鐨?Using 璇彞涓墦寮鎵鏈夎繛鎺ャ備笉鏄樉寮忓叧闂殑榪炴帴鍙兘涓嶄細娣誨姞鎴栬繑鍥炲埌姹犱腑銆備緥濡傦紝濡傛灉榪炴帴宸茶秴鍑鴻寖鍥翠絾娌℃湁鏄懼紡鍏抽棴錛屽垯浠呭綋杈懼埌鏈澶ф睜澶у皬鑰岃榪炴帴浠嶇劧鏈夋晥鏃訛紝璇ヨ繛鎺ユ墠浼氳繑鍥炲埌榪炴帴姹犱腑銆傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙?Visual Basic 鐨?a id=ctl00_rs1_mainContentContainer_ctl03 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl03',this);" tabIndex=0 ><u><font color=#0000ff>using 璇彞錛圕# 鍙傝冿級</font></u></a>鎴?a id=ctl00_rs1_mainContentContainer_ctl04 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl04',this);" tabIndex=0 ><u><font color=#0000ff>濡備綍錛氶噴鏀劇郴緇熻祫婧?/font></u></a>銆?/p> </td> </tr> </tbody> </table> </div> <div id="hvzpftn" class=alert> <table width="100%"> <tbody> <tr> <th align=left><img class=note alt=Note src="http://msdn2.microsoft.com/zh-cn/library/8xx3tyca.note(zh-cn,VS.80).gif">娉ㄦ剰</th> </tr> <tr> <td> <p>涓嶈鍦ㄧ被鐨?Finalize 鏂規硶涓 Connection銆丏ataReader 鎴栦換浣曞叾浠栨墭綆″璞¤皟鐢?Close 鎴?Dispose銆傚湪緇堢粨鍣ㄤ腑錛屼粎閲婃斁綾葷洿鎺ユ嫢鏈夌殑闈炴墭綆¤祫婧愩傚鏋滅被涓嶆嫢鏈変換浣曢潪鎵樼璧勬簮錛屽垯涓嶈鍦ㄧ被瀹氫箟涓寘鍚?Finalize 鏂規硶銆傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙?a id=ctl00_rs1_mainContentContainer_ctl05 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl05',this);" tabIndex=0 ><u><font color=#0000ff>鍨冨溇鍥炴敹</font></u></a>銆?/p> </td> </tr> </tbody> </table> </div> </div> <h1 class=heading>縐婚櫎榪炴帴</h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection2> <p>榪炴帴姹犺繘紼嬪畾鏈熸壂鎻忚繛鎺ユ睜錛屾煡鎵炬病鏈夐氳繃 Close 鎴?Dispose 鍏抽棴鐨勬湭鐢ㄨ繛鎺ワ紝騫墮噸鏂板緩绔嬫壘鍒扮殑榪炴帴銆傚鏋滃簲鐢ㄧ▼搴忔病鏈夋樉寮忓叧闂垨鏂紑鍏惰繛鎺ワ紝榪炴帴姹犺繘紼嬪彲鑳介渶瑕佸緢闀挎椂闂存墠鑳介噸鏂板緩绔嬭繛鎺ワ紝鎵浠ワ紝鏈濂界‘淇濆湪榪炴帴涓樉寮忚皟鐢?Close 鍜?Dispose銆?/p> <p>濡傛灉榪炴帴闀挎椂闂寸┖闂詫紝鎴栨睜榪涚▼媯嫻嬪埌涓庢湇鍔″櫒鐨勮繛鎺ュ凡鏂紑錛岃繛鎺ユ睜榪涚▼浼氬皢璇ヨ繛鎺ヤ粠姹犱腑縐婚櫎銆傛敞鎰忥紝鍙湁鍦ㄥ皾璇曚笌鏈嶅姟鍣ㄨ繘琛岄氫俊涔嬪悗鎵嶈兘媯嫻嬪埌鏂紑鐨勮繛鎺ャ傚鏋滃彂鐜版煇榪炴帴涓嶅啀榪炴帴鍒版湇鍔″櫒錛屽垯浼氬皢鍏舵爣璁頒負鏃犳晥銆傛棤鏁堣繛鎺ュ彧鏈夊湪鍏抽棴鎴栭噸鏂板緩绔嬪悗錛屾墠浼氫粠榪炴帴姹犱腑縐婚櫎銆?/p> <p>濡傛灉瀛樺湪涓庡凡娑堝け鐨勬湇鍔″櫒鐨勮繛鎺ワ紝閭d箞鍗充嬌榪炴帴姹犵鐞嗙▼搴忔湭媯嫻嬪埌宸叉柇寮鐨勮繛鎺ュ茍灝嗗叾鏍囪涓烘棤鏁堬紝浠嶆湁鍙兘灝嗘榪炴帴浠庢睜涓彇鍑恒傝繖縐嶆儏鍐墊槸鍥犱負媯鏌ヨ繛鎺ユ槸鍚︿粛鏈夋晥鐨勭郴緇熷紑閿灝嗛犳垚涓庢湇鍔″櫒鐨勫彟涓嬈″線榪旓紝浠庤屾姷娑堜簡姹犺繘紼嬬殑浼樺娍銆傚彂鐢熸鎯呭喌鏃訛紝鍒濇灝濊瘯浣跨敤璇ヨ繛鎺ュ皢媯嫻嬭繛鎺ユ槸鍚︽浘鏂紑錛屽茍寮曞彂寮傚父銆?/p> </div> <h1 class=heading>娓呴櫎姹?/h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection3> <p>ADO.NET 2.0 寮曞叆浜嗕袱縐嶆柊鐨勬柟娉曟潵娓呴櫎姹狅細<a id=ctl00_rs1_mainContentContainer_ctl06 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl06',this);" tabIndex=0 ><u><font color=#0000ff>ClearAllPools</font></u></a> 鍜?<a id=ctl00_rs1_mainContentContainer_ctl07 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl07',this);" tabIndex=0 ><u><font color=#0000ff>ClearPool</font></u></a>銆侰learAllPools 娓呴櫎緇欏畾鎻愪緵紼嬪簭鐨勮繛鎺ユ睜錛孋learPool 娓呴櫎涓庣壒瀹氳繛鎺ュ叧鑱旂殑榪炴帴姹犮傚鏋滃湪璋冪敤鏃惰繛鎺ユ鍦ㄤ嬌鐢紝灝嗚繘琛岀浉搴旂殑鏍囪銆傝繛鎺ュ叧闂椂錛屽皢琚涪寮冿紝鑰屼笉鏄繑鍥炴睜涓?/p> </div> <h1 class=heading>浜嬪姟鏀寔</h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection4> <p>榪炴帴鏄牴鎹簨鍔′笂涓嬫枃鏉ヤ粠姹犱腑鍙栧嚭騫惰繘琛屽垎閰嶇殑銆傞櫎闈炲湪榪炴帴瀛楃涓蹭腑鎸囧畾浜?<tt>Enlist=false</tt>錛屽惁鍒欙紝榪炴帴姹犲皢紜繚榪炴帴鍦?<a id=ctl00_rs1_mainContentContainer_ctl08 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl08',this);" tabIndex=0 ><u><font color=#0000ff>Current</font></u></a> 涓婁笅鏂囦腑鐧昏銆傚鏋滆繛鎺ヤ嬌鐢ㄧ櫥璁扮殑 System.Transactions 浜嬪姟鍏抽棴騫惰繑鍥炴睜涓紝榪炴帴灝嗕繚鐣欏湪姹犱腑錛屼互渚夸嬌鐢ㄧ浉鍚?System.Transactions 浜嬪姟瀵硅榪炴帴姹犵殑涓嬩竴嬈¤姹傚皢榪斿洖鐩稿悓鐨勮繛鎺ャ傚鏋滆浜嬪姟娌℃湁鍙敤榪炴帴錛屽湪璇ヨ繛鎺ユ墦寮鏃訛紝灝嗚嚜鍔ㄦ敞鍐岃榪炴帴銆?/p> <p>褰撹繛鎺ュ叧闂椂錛屽畠灝嗚閲婃斁鍥炴睜涓紝騫舵牴鎹叾浜嬪姟涓婁笅鏂囨斁鍏ョ浉搴旂殑瀛愰儴鍒嗐傚洜姝わ紝鍗充嬌鍒嗗竷寮忎簨鍔′粛鐒舵寕璧鳳紝浠嶅彲浠ュ叧闂榪炴帴鑰屼笉浼氱敓鎴愰敊璇傝繖鏍鳳紝鎮ㄥ氨鍙互鍦ㄩ殢鍚庢彁浜ゆ垨涓鍒嗗竷寮忎簨鍔°?/p> </div> <h1 class=heading>浣跨敤榪炴帴瀛楃涓插叧閿瓧鎺у埗榪炴帴姹?/h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection5> <p>SqlConnection 瀵硅薄鐨?ConnectionString 灞炴ф敮鎸佽繛鎺ュ瓧絎︿覆閿?鍊煎錛屽彲浠ョ敤浜庤皟鏁磋繛鎺ユ睜閫昏緫鐨勮涓恒傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙?<a id=ctl00_rs1_mainContentContainer_ctl09 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl09',this);" tabIndex=0 ><u><font color=#0000ff>ConnectionString</font></u></a>銆?/p> </div> <h1 class=heading>姹犵鐗?/h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection6> <p>姹犵鐗囨槸璁稿 Web 搴旂敤紼嬪簭涓殑涓涓父瑙侀棶棰橈紝搴旂敤紼嬪簭鍙兘浼氬垱寤哄ぇ閲忓湪榪涚▼閫鍑哄悗鎵嶄細閲婃斁鐨勬睜銆傝繖鏍鳳紝灝嗘墦寮澶ч噺鐨勮繛鎺ワ紝鍗犵敤璁稿鍐呭瓨錛屼粠鑰屽獎鍝嶆ц兘銆?/p> <h3 class=subHeading>鍥犱負闆嗘垚瀹夊叏鎬т駭鐢熺殑姹犵鐗?/h3> <div id="hvzpftn" class=subSection> <p>榪炴帴鏍規嵁榪炴帴瀛楃涓蹭互鍙婄敤鎴鋒爣璇嗘潵寤虹珛姹犺繛鎺ャ傚洜姝わ紝濡傛灉浣跨敤緗戠珯涓婄殑鍩烘湰韜喚楠岃瘉鎴?Windows 韜喚楠岃瘉浠ュ強闆嗘垚鐨勫畨鍏ㄧ櫥褰曪紝姣忎釜鐢ㄦ埛灝嗚幏寰椾竴涓睜銆傚敖綆¤繖鏍峰彲浠ユ彁楂樺崟涓敤鎴風殑鍚庣畫鏁版嵁搴撹姹傜殑鎬ц兘錛屼絾鏄鐢ㄦ埛鏃犳硶鍒╃敤鍏朵粬鐢ㄦ埛寤虹珛鐨勮繛鎺ャ傝繖鏍瘋繕浣挎瘡涓敤鎴瘋嚦灝戜駭鐢熶竴涓笌鏁版嵁搴撴湇鍔″櫒鐨勮繛鎺ャ傝繖瀵圭壒瀹?Web 搴旂敤紼嬪簭緇撴瀯浼氫駭鐢熷壇浣滅敤錛屽洜涓哄紑鍙戜漢鍛橀渶瑕佽 閲忓畨鍏ㄦу拰瀹¤瑕佹眰銆?/p> </div> <h3 class=subHeading>鍥犱負璁稿鏁版嵁搴撲駭鐢熺殑姹犵鐗?/h3> <div id="hvzpftn" class=subSection> <p>璁稿 Internet 鏈嶅姟鎻愪緵鍟嗗湪涓鍙版湇鍔″櫒涓婃墭綆″涓綉绔欍備粬浠彲鑳戒嬌鐢ㄥ崟涓暟鎹簱紜紿椾綋韜喚楠岃瘉鐧誨綍錛岀劧鍚庝負璇ョ敤鎴鋒垨鐢ㄦ埛緇勬墦寮涓庣壒瀹氭暟鎹簱鐨勮繛鎺ャ備笌韜喚楠岃瘉鏁版嵁搴撶殑榪炴帴灝嗗緩绔嬫睜榪炴帴錛屼緵姣忎釜鐢ㄦ埛浣跨敤銆備絾鏄紝姣忎釜鏁版嵁搴撶殑榪炴帴瀛樺湪涓涓嫭绔嬬殑姹狅紝鍥犳澧炲姞浜嗕笌鏈嶅姟鍣ㄧ殑榪炴帴鏁般?/p> <p>榪欎篃浼氬搴旂敤紼嬪簭璁捐浜х敓鍓綔鐢ㄣ備絾鏄紝鍙互閫氳繃涓涓浉瀵圭畝鍗曠殑鏂瑰紡閬垮厤姝ゅ壇浣滅敤錛岃屽張涓嶄細褰卞搷榪炴帴 SQL Server 鏃剁殑瀹夊叏鎬с備笉鏄負姣忎釜鐢ㄦ埛鎴栫粍榪炴帴鐙珛鐨勬暟鎹簱錛岃屾槸榪炴帴鍒版湇鍔″櫒涓婄殑鐩稿悓鏁版嵁搴擄紝鐒跺悗鎵ц Transact-SQL USE 璇彞鏉ュ垏鎹負鎵闇鐨勬暟鎹簱銆備互涓嬩唬鐮佹婕旂ず鍏ュ浣曞垱寤轟笌 master 鏁版嵁搴撶殑鍒濆榪炴帴錛岀劧鍚庡垏鎹㈠埌 <tt>databaseName</tt> 瀛楃涓插彉閲忎腑鎸囧畾鐨勬墍闇鏁版嵁搴撱?/p> <div id="hvzpftn" class=code id=ctl00_rs1_mainContentContainer_ctl11_CSharp>C#:<br><span style="COLOR: green">// Assumes that command is a SqlCommand object.</span><br><span style="COLOR: blue">using</span> (SqlConnection connection = <span style="COLOR: blue">new</span> SqlConnection(<br>  <span style="COLOR: maroon">"Server=MSSQL1;uid=xxx;pwd=xxx;database=master"</span>))<br>  {<br>    connection.Open();<br>    command.ExecuteNonQuery(<span style="COLOR: maroon">"USE "</span> + databaseName);<br>  }<br></div> </div> </div> <h1 class=heading>搴旂敤紼嬪簭瑙掕壊鍜岃繛鎺ユ睜</h1> <div id="hvzpftn" class=seeAlsoNoToggleSection id=sectionSection7> <p>閫氳繃璋冪敤 sp_setapprole 緋葷粺瀛樺偍榪囩▼嬋媧諱簡 SQL Server 搴旂敤紼嬪簭瑙掕壊涔嬪悗錛岃榪炴帴鐨勫畨鍏ㄤ笂涓嬫枃鏃犳硶閲嶇疆銆備絾鏄紝濡傛灉鍚敤浜嗘睜錛岃繛鎺ュ皢榪斿洖姹狅紝鍦ㄩ噸澶嶄嬌鐢ㄦ睜榪炴帴鏃朵細鍑洪敊銆?/p> <p>濡傛灉浣跨敤鐨勬槸 SQL Server 搴旂敤紼嬪簭瑙掕壊錛屾垜浠緩璁偍鍦ㄨ繛鎺ュ瓧絎︿覆涓負搴旂敤紼嬪簭紱佺敤榪炴帴姹犮傛湁鍏蟲洿澶氫俊鎭紝璇峰弬瑙佺煡璇嗗簱鏂囩珷“<a id=ctl00_rs1_mainContentContainer_ctl12 onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl12',this);" tabIndex=0 ><u><font color=#0000ff>SQL application role errors with OLE DB resource pooling</font></u></a>”銆?/p> </div> </div> </div> <img src ="http://m.shnenglu.com/xushaohua/aggbug/39171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xushaohua/" target="_blank">neter</a> 2007-12-21 01:33 <a href="http://m.shnenglu.com/xushaohua/archive/2007/12/21/39171.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞VC涓熀浜?Windows 鐨勭簿紜畾鏃?/title><link>http://m.shnenglu.com/xushaohua/archive/2007/12/04/37817.html</link><dc:creator>neter</dc:creator><author>neter</author><pubDate>Tue, 04 Dec 2007 12:56:00 GMT</pubDate><guid>http://m.shnenglu.com/xushaohua/archive/2007/12/04/37817.html</guid><wfw:comment>http://m.shnenglu.com/xushaohua/comments/37817.html</wfw:comment><comments>http://m.shnenglu.com/xushaohua/archive/2007/12/04/37817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/xushaohua/comments/commentRss/37817.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/xushaohua/services/trackbacks/37817.html</trackback:ping><description><![CDATA[涓浗縐戝闄㈠厜鐢墊妧鏈爺絀舵墍 <a href="mailto:yzyseal@126.com"><u><font color=#0000ff>娓稿織瀹?/font></u></a><br><br>鍦ㄥ伐涓氱敓浜ф帶鍒剁郴緇熶腑錛屾湁璁稿闇瑕佸畾鏃跺畬鎴愮殑鎿嶄綔錛屽瀹氭椂鏄劇ず褰撳墠鏃墮棿錛屽畾鏃跺埛鏂板睆騫曚笂鐨勮繘搴︽潯錛屼笂浣?wbr> 鏈哄畾鏃跺悜涓嬩綅鏈哄彂閫佸懡浠ゅ拰浼犻佹暟鎹瓑銆傜壒鍒槸鍦ㄥ鎺у埗鎬ц兘瑕佹眰杈冮珮鐨勫疄鏃舵帶鍒剁郴緇熷拰鏁版嵁閲囬泦緋葷粺涓紝灝辨洿闇瑕佺簿紜畾鏃舵搷浣溿?br>銆銆浼楁墍鍛ㄧ煡錛學indows 鏄熀浜庢秷鎭満鍒剁殑緋葷粺錛屼換浣曚簨浠剁殑鎵ц閮芥槸閫氳繃鍙戦佸拰鎺ユ敹娑堟伅鏉ュ畬鎴愮殑銆?wbr> 榪欐牱灝卞甫鏉ヤ簡涓浜涢棶棰橈紝濡備竴鏃﹁綆楁満鐨凜PU琚煇涓繘紼嬪崰鐢紝鎴栫郴緇熻祫婧愮揣寮犳椂錛屽彂閫佸埌娑堟伅闃熷垪<wbr> 涓殑娑堟伅灝辨殏鏃惰鎸傝搗錛屽緱涓嶅埌瀹炴椂澶勭悊銆傚洜姝わ紝涓嶈兘綆鍗曞湴閫氳繃Windows娑堟伅寮曞彂涓涓瀹氭椂瑕佹眰<wbr> 涓ユ牸鐨勪簨浠躲傚彟澶栵紝鐢變簬鍦╓indows涓凡緇忓皝瑁呬簡璁$畻鏈哄簳灞傜‖浠剁殑璁塊棶錛屾墍浠ワ紝瑕佹兂閫氳繃鐩存帴鍒╃敤<wbr> 璁塊棶紜歡鏉ュ畬鎴愮簿紜畾鏃訛紝涔熸瘮杈冨洶闅俱傛墍浠ュ湪瀹為檯搴旂敤鏃訛紝搴旈拡瀵瑰叿浣撳畾鏃剁簿搴︾殑瑕佹眰錛岄噰鍙栫浉閫?搴旂殑瀹氭椂鏂規硶銆?br>銆銆VC涓彁渚涗簡寰堝鍏充簬鏃墮棿鎿嶄綔鐨勫嚱鏁幫紝鍒╃敤瀹冧滑鎺у埗紼嬪簭鑳藉綺劇‘鍦板畬鎴愬畾鏃跺拰璁℃椂鎿嶄綔銆傛湰鏂囪緇嗕粙緇嶄簡<wbr> VC涓熀浜嶹indows鐨勭簿紜畾鏃剁殑涓冪鏂瑰紡錛屽涓嬪浘鎵紺猴細<br><img height=419 alt="" src="http://m.shnenglu.com/images/cppblog_com/xushaohua/MultiTimerDemoimg.gif" width=639 border=0><br>鍥句竴 鍥懼儚鎻忚堪 <br><br>銆銆鏂瑰紡涓錛歏C涓殑WM_TIMER娑堟伅鏄犲皠鑳借繘琛岀畝鍗曠殑鏃墮棿鎺у埗銆傞鍏堣皟鐢ㄥ嚱鏁癝etTimer()璁劇疆瀹氭椂<wbr> 闂撮殧錛屽SetTimer(0,200,NULL)鍗充負璁劇疆200ms鐨勬椂闂撮棿闅斻傜劧鍚庡湪搴旂敤紼嬪簭涓鍔犲畾鏃跺搷搴斿嚱鏁?wbr> OnTimer()錛屽茍鍦ㄨ鍑芥暟涓坊鍔犲搷搴旂殑澶勭悊璇彞錛岀敤鏉ュ畬鎴愬埌杈懼畾鏃舵椂闂寸殑鎿嶄綔銆傝繖縐嶅畾鏃舵柟娉曢潪甯?wbr> 綆鍗曪紝鍙互瀹炵幇涓瀹氱殑瀹氭椂鍔熻兘錛屼絾鍏跺畾鏃跺姛鑳藉鍚孲leep()鍑芥暟鐨勫歡鏃跺姛鑳戒竴鏍鳳紝綺懼害闈炲父浣庯紝鏈灝?wbr> 璁℃椂綺懼害浠呬負30ms錛孋PU鍗犵敤浣庯紝涓斿畾鏃跺櫒娑堟伅鍦ㄥ浠誨姟鎿嶄綔緋葷粺涓殑浼樺厛綰у緢浣庯紝涓嶈兘寰楀埌鍙婃椂鍝?wbr> 搴旓紝寰寰涓嶈兘婊¤凍瀹炴椂鎺у埗鐜涓嬬殑搴旂敤銆傚彧鍙互鐢ㄦ潵瀹炵幇璇稿浣嶅浘鐨勫姩鎬佹樉紺虹瓑瀵瑰畾鏃剁簿搴﹁姹備笉楂樼殑鎯呭喌銆傚紺轟緥宸ョ▼涓殑Timer1銆?<br>銆銆鏂瑰紡浜岋細VC涓嬌鐢╯leep()鍑芥暟瀹炵幇寤舵椂錛屽畠鐨勫崟浣嶆槸ms錛屽寤舵椂2縐掞紝鐢╯leep(2000)銆傜簿搴﹂潪甯?wbr> 浣庯紝鏈灝忚鏃剁簿搴︿粎涓?0ms錛岀敤sleep鍑芥暟鐨勪笉鍒╁鍦ㄤ簬寤舵椂鏈熼棿涓嶈兘澶勭悊鍏朵粬鐨勬秷鎭紝濡傛灉鏃墮棿澶?wbr> 闀匡紝灝卞ソ璞℃鏈轟竴鏍鳳紝CPU鍗犵敤鐜囬潪甯擱珮錛屽彧鑳界敤浜庤姹備笉楂樼殑寤舵椂紼嬪簭涓傚紺轟緥宸ョ▼涓殑Timer2銆?br>銆銆鏂瑰紡涓夛細鍒╃敤COleDateTime綾誨拰COleDateTimeSpan綾葷粨鍚圵INDOWS鐨勬秷鎭鐞嗚繃紼嬫潵瀹炵幇縐掔駭寤舵椂銆傚紺轟緥宸ョ▼涓殑Timer3鍜孴imer3_1銆備互涓嬫槸瀹炵幇2縐掔殑寤舵椂浠g爜錛?br>COleDateTime      start_time = COleDateTime::GetCurrentTime();<br>      COleDateTimeSpan  end_time= COleDateTime::GetCurrentTime()-start_time;<br>      while(end_time.GetTotalSeconds()< 2) //瀹炵幇寤舵椂2縐?br>     { <br>              MSG   msg;<br>              GetMessage(&msg,NULL,0,0);<br>              TranslateMessage(&msg); <br>              DispatchMessage(&msg);<br>              <br>             //浠ヤ笂鍥涜鏄疄鐜板湪寤舵椂鎴栧畾鏃舵湡闂磋兘澶勭悊鍏朵粬鐨勬秷鎭紝<br>銆銆銆銆銆銆 //铏界劧榪欐牱鍙互闄嶄綆CPU鐨勫崰鏈夌巼錛?br>             //浣嗛檷浣庝簡寤舵椂鎴栧畾鏃剁簿搴︼紝瀹為檯搴旂敤涓彲浠ュ幓鎺夈?br>             end_time = COleDateTime::GetCurrentTime()-start_time;<br>      }//榪欐牱鍦ㄥ歡鏃剁殑鏃跺欐垜浠篃鑳藉澶勭悊鍏朵粬鐨勬秷鎭?nbsp;     <br>鏂瑰紡鍥涳細鍦ㄧ簿搴﹁姹傝緝楂樼殑鎯呭喌涓嬶紝VC涓彲浠ュ埄鐢℅etTickCount()鍑芥暟錛岃鍑芥暟鐨勮繑鍥炲兼槸<wbr>  DWORD鍨嬶紝琛ㄧず浠s涓哄崟浣嶇殑璁$畻鏈哄惎鍔ㄥ悗緇忓巻鐨勬椂闂撮棿闅斻傜簿搴︽瘮WM_TIMER娑堟伅鏄犲皠楂橈紝鍦ㄨ緝<wbr> 鐭殑瀹氭椂涓叾璁℃椂璇樊涓?5ms錛屽湪杈冮暱鐨勫畾鏃朵腑鍏惰鏃惰宸緝浣庯紝濡傛灉瀹氭椂鏃墮棿澶暱錛屽氨濂借薄姝繪満涓鏍鳳紝CPU鍗犵敤鐜囬潪甯擱珮錛屽彧鑳界敤浜庤姹備笉楂樼殑寤舵椂紼嬪簭涓傚紺轟緥宸ョ▼涓殑Timer4鍜孴imer4_1銆備笅鍒椾唬鐮佸彲浠ュ疄鐜?0ms鐨勭簿紜畾鏃訛細<br> <pre> DWORD dwStart = GetTickCount(); DWORD dwEnd = dwStart; do { dwEnd = GetTickCount()-dwStart; }while(dwEnd <50);</pre> 涓轟嬌GetTickCount()鍑芥暟鍦ㄥ歡鏃舵垨瀹氭椂鏈熼棿鑳藉鐞嗗叾浠栫殑娑堟伅錛屽彲浠ユ妸浠g爜鏀逛負錛?br> <pre> DWORD dwStart = GetTickCount(); DWORD dwEnd = dwStart; do { MSG msg; GetMessage(&msg,NULL,0,0); TranslateMessage(&msg); DispatchMessage(&msg); dwEnd = GetTickCount()-dwStart; }while(dwEnd <50);</pre> 铏界劧榪欐牱鍙互闄嶄綆CPU鐨勫崰鏈夌巼錛屽茍鍦ㄥ歡鏃舵垨瀹氭椂鏈熼棿涔熻兘澶勭悊鍏朵粬鐨勬秷鎭紝浣嗛檷浣庝簡寤舵椂鎴栧畾鏃剁簿搴︺?br>銆銆鏂瑰紡浜旓細涓嶨etTickCount()鍑芥暟綾諱技鐨勫濯掍綋瀹氭椂鍣ㄥ嚱鏁癉WORD timeGetTime(void)錛岃鍑芥暟瀹氭椂綺?wbr> 搴︿負ms綰э紝榪斿洖浠嶹indows鍚姩寮濮嬬粡榪囩殑姣鏁般傚井杞叕鍙稿湪鍏跺濯掍綋Windows涓彁渚涗簡綺劇‘瀹氭椂鍣ㄧ殑搴?wbr> 灞侫PI鎸侊紝鍒╃敤澶氬獟浣撳畾鏃跺櫒鍙互寰堢簿紜湴璇誨嚭緋葷粺鐨勫綋鍓嶆椂闂達紝騫朵笖鑳藉湪闈炲父綺劇‘鐨勬椂闂撮棿闅斿唴瀹屾垚涓<wbr> 涓簨浠躲佸嚱鏁版垨榪囩▼鐨勮皟鐢ㄣ備笉鍚屼箣澶勫湪浜庤皟鐢―WORD timeGetTime(void) 鍑芥暟涔嬪墠蹇呴』灝?Winmm.lib <wbr> 鍜?Mmsystem.h 娣誨姞鍒板伐紼嬩腑錛屽惁鍒欏湪緙栬瘧鏃舵彁紺篋WORD timeGetTime(void)鍑芥暟鏈畾涔夈傜敱浜庝嬌鐢ㄨ<wbr> 鍑芥暟鏄氳繃鏌ヨ鐨勬柟寮忚繘琛屽畾鏃舵帶鍒剁殑錛屾墍浠ワ紝搴旇寤虹珛瀹氭椂寰幆鏉ヨ繘琛屽畾鏃朵簨浠剁殑鎺у埗銆傚紺轟緥宸ョ▼涓殑Timer5鍜孴imer5_1銆?br>銆銆鏂瑰紡鍏細浣跨敤澶氬獟浣撳畾鏃跺櫒timeSetEvent()鍑芥暟錛岃鍑芥暟瀹氭椂綺懼害涓簃s綰с傚埄鐢ㄨ鍑芥暟鍙互瀹炵幇鍛ㄦ湡鎬х殑鍑芥暟璋冪敤銆傚紺轟緥宸ョ▼涓殑Timer6鍜孴imer6_1銆傚嚱鏁扮殑鍘熷瀷濡備笅錛?<br> <pre> MMRESULT timeSetEvent錛?UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, WORD dwUser, UINT fuEvent 錛?/pre> 銆銆璇ュ嚱鏁拌緗竴涓畾鏃跺洖璋冧簨浠訛紝姝や簨浠跺彲浠ユ槸涓涓竴嬈℃т簨浠舵垨鍛ㄦ湡鎬т簨浠躲備簨浠朵竴鏃﹁嬋媧伙紝渚胯皟鐢ㄦ寚瀹氱殑鍥炶皟鍑芥暟錛?wbr> 鎴愬姛鍚庤繑鍥炰簨浠剁殑鏍囪瘑絎︿唬鐮侊紝鍚﹀垯榪斿洖NULL銆傚嚱鏁扮殑鍙傛暟璇存槑濡備笅錛?br> <pre> uDelay錛氫互姣鎸囧畾浜嬩歡鐨勫懆鏈熴? Uresolution錛氫互姣鎸囧畾寤舵椂鐨勭簿搴︼紝鏁板艱秺灝忓畾鏃跺櫒浜嬩歡鍒嗚鯨鐜囪秺楂樸傜己鐪佸間負1ms銆? LpTimeProc錛氭寚鍚戜竴涓洖璋冨嚱鏁般? DwUser錛氬瓨鏀劇敤鎴鋒彁渚涚殑鍥炶皟鏁版嵁銆? FuEvent錛氭寚瀹氬畾鏃跺櫒浜嬩歡綾誨瀷錛? TIME_ONESHOT錛歶Delay姣鍚庡彧浜х敓涓嬈′簨浠? TIME_PERIODIC 錛氭瘡闅攗Delay姣鍛ㄦ湡鎬у湴浜х敓浜嬩歡銆? </pre> 銆銆鍏蜂綋搴旂敤鏃訛紝鍙互閫氳繃璋冪敤timeSetEvent()鍑芥暟錛屽皢闇瑕佸懆鏈熸ф墽琛岀殑浠誨姟瀹氫箟鍦↙pTimeProc鍥炶皟鍑芥暟<wbr> 涓?濡傦細瀹氭椂閲囨牱銆佹帶鍒剁瓑)錛屼粠鑰屽畬鎴愭墍闇澶勭悊鐨勪簨浠躲傞渶瑕佹敞鎰忕殑鏄紝浠誨姟澶勭悊鐨勬椂闂翠笉鑳藉ぇ浜庡懆鏈熼棿闅旀椂闂淬傚彟澶栵紝鍦ㄥ畾鏃跺櫒浣跨敤瀹屾瘯鍚庯紝<wbr> 搴斿強鏃惰皟鐢╰imeKillEvent()灝嗕箣閲婃斁銆?<br>銆銆鏂瑰紡涓冿細瀵逛簬綺劇‘搴﹁姹傛洿楂樼殑瀹氭椂鎿嶄綔錛屽垯搴旇浣跨敤QueryPerformanceFrequency()鍜?wbr> QueryPerformanceCounter()鍑芥暟銆傝繖涓や釜鍑芥暟鏄疺C鎻愪緵鐨勪粎渚沇indows 95鍙婂叾鍚庣畫鐗堟湰浣跨敤鐨勭簿紜椂闂村嚱鏁幫紝騫惰姹傝綆楁満浠庣‖浠朵笂鏀寔綺劇‘瀹氭椂鍣ㄣ傚紺轟緥宸ョ▼涓殑Timer7銆乀imer7_1銆乀imer7_2銆乀imer7_3銆?br>QueryPerformanceFrequency()鍑芥暟鍜孮ueryPerformanceCounter()鍑芥暟鐨勫師鍨嬪涓嬶細<br> <pre> BOOL QueryPerformanceFrequency(LARGE_INTEGER 錛妉pFrequency); BOOL QueryPerformanceCounter(LARGE_INTEGER 錛妉pCount);</pre> 銆銆鏁版嵁綾誨瀷ARGE_INTEGER鏃㈠彲浠ユ槸涓涓?瀛楄妭闀跨殑鏁村瀷鏁幫紝涔熷彲浠ユ槸涓や釜4瀛楄妭闀跨殑鏁村瀷鏁扮殑鑱斿悎緇撴瀯錛?wbr> 鍏跺叿浣撶敤娉曟牴鎹紪璇戝櫒鏄惁鏀寔64浣嶈屽畾銆傝綾誨瀷鐨勫畾涔夊涓嬶細<br> <pre> typedef union _LARGE_INTEGER { struct { DWORD LowPart ;// 4瀛楄妭鏁村瀷鏁? LONG HighPart;// 4瀛楄妭鏁村瀷鏁? }; LONGLONG QuadPart ;// 8瀛楄妭鏁村瀷鏁? }LARGE_INTEGER ;</pre> 銆銆鍦ㄨ繘琛屽畾鏃朵箣鍓嶏紝鍏堣皟鐢≦ueryPerformanceFrequency()鍑芥暟鑾峰緱鏈哄櫒鍐呴儴瀹氭椂鍣ㄧ殑鏃墮挓棰戠巼錛?wbr> 鐒跺悗鍦ㄩ渶瑕佷弗鏍煎畾鏃剁殑浜嬩歡鍙戠敓涔嬪墠鍜屽彂鐢熶箣鍚庡垎鍒皟鐢≦ueryPerformanceCounter()鍑芥暟錛屽埄鐢ㄤ袱嬈¤幏寰楃殑璁℃暟涔嬪樊鍙婃椂閽熼鐜囷紝璁$畻鍑轟簨浠剁粡<wbr> 鍘嗙殑綺劇‘鏃墮棿銆備笅鍒椾唬鐮佸疄鐜?ms鐨勭簿紜畾鏃訛細<br> <pre> LARGE_INTEGER litmp; LONGLONG QPart1,QPart2; double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp); dfFreq = (double)litmp.QuadPart;// 鑾峰緱璁℃暟鍣ㄧ殑鏃墮挓棰戠巼 QueryPerformanceCounter(&litmp); QPart1 = litmp.QuadPart;// 鑾峰緱鍒濆鍊? do { QueryPerformanceCounter(&litmp); QPart2 = litmp.QuadPart;//鑾峰緱涓鍊? dfMinus = (double)(QPart2-QPart1); dfTim = dfMinus / dfFreq;// 鑾峰緱瀵瑰簲鐨勬椂闂村鹼紝鍗曚綅涓虹 }while(dfTim<0.001);</pre> 銆銆鍏跺畾鏃惰宸笉瓚呰繃1寰錛岀簿搴︿笌CPU絳夋満鍣ㄩ厤緗湁鍏熾?涓嬮潰鐨勭▼搴忕敤鏉ユ祴璇曞嚱鏁癝leep(100)鐨勭簿紜寔緇椂闂達細<br> <pre> LARGE_INTEGER litmp; LONGLONG QPart1,QPart2; double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp); dfFreq = (double)litmp.QuadPart;// 鑾峰緱璁℃暟鍣ㄧ殑鏃墮挓棰戠巼 QueryPerformanceCounter(&litmp); QPart1 = litmp.QuadPart;// 鑾峰緱鍒濆鍊? Sleep(100); QueryPerformanceCounter(&litmp); QPart2 = litmp.QuadPart;//鑾峰緱涓鍊? dfMinus = (double)(QPart2-QPart1); dfTim = dfMinus / dfFreq;// 鑾峰緱瀵瑰簲鐨勬椂闂村鹼紝鍗曚綅涓虹 </pre> 銆銆鐢變簬Sleep()鍑芥暟鑷韓鐨勮宸紝涓婅堪紼嬪簭姣忔鎵ц鐨勭粨鏋滈兘浼氭湁寰皬璇樊銆備笅鍒椾唬鐮佸疄鐜?寰鐨勭簿紜畾鏃訛細<br> <pre> LARGE_INTEGER litmp; LONGLONG QPart1,QPart2; double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp); dfFreq = (double)litmp.QuadPart;// 鑾峰緱璁℃暟鍣ㄧ殑鏃墮挓棰戠巼 QueryPerformanceCounter(&litmp); QPart1 = litmp.QuadPart;// 鑾峰緱鍒濆鍊? do { QueryPerformanceCounter(&litmp); QPart2 = litmp.QuadPart;//鑾峰緱涓鍊? dfMinus = (double)(QPart2-QPart1); dfTim = dfMinus / dfFreq;// 鑾峰緱瀵瑰簲鐨勬椂闂村鹼紝鍗曚綅涓虹 }while(dfTim<0.000001);</pre> 鍏跺畾鏃惰宸竴鑸笉瓚呰繃0.5寰錛岀簿搴︿笌CPU絳夋満鍣ㄩ厤緗湁鍏熾? <img src ="http://m.shnenglu.com/xushaohua/aggbug/37817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/xushaohua/" target="_blank">neter</a> 2007-12-04 20:56 <a href="http://m.shnenglu.com/xushaohua/archive/2007/12/04/37817.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍩轟簬 Visual C++6.0 鐨?DLL 緙栫▼瀹炵幇http://m.shnenglu.com/xushaohua/archive/2007/12/04/37783.htmlneterneterTue, 04 Dec 2007 05:44:00 GMThttp://m.shnenglu.com/xushaohua/archive/2007/12/04/37783.htmlhttp://m.shnenglu.com/xushaohua/comments/37783.htmlhttp://m.shnenglu.com/xushaohua/archive/2007/12/04/37783.html#Feedback1http://m.shnenglu.com/xushaohua/comments/commentRss/37783.htmlhttp://m.shnenglu.com/xushaohua/services/trackbacks/37783.html涓銆佸墠璦

銆銆鑷粠寰蔣鎺ㄥ嚭 16 浣嶇殑 Windows 鎿嶄綔緋葷粺璧鳳紝姝ゅ悗姣忕鐗堟湰鐨?/span> Windows 鎿嶄綔緋葷粺閮介潪甯鎬緷璧栦簬鍔ㄦ侀摼鎺ュ簱 (DLL) 涓殑鍑芥暟鍜屾暟鎹紝瀹為檯涓?/span> Windows 鎿嶄綔緋葷粺涓嚑涔庢墍鏈夌殑鍐呭閮界敱 DLL 浠ヤ竴縐嶆垨鍙﹀涓縐嶅艦寮忎唬琛ㄧ潃錛屼緥濡傛樉紺虹殑瀛椾綋鍜屽浘鏍囧瓨鍌ㄥ湪 GDI DLL 涓佹樉紺?/span> Windows 妗岄潰鍜屽鐞嗙敤鎴風殑杈撳叆鎵闇瑕佺殑浠g爜琚瓨鍌ㄥ湪涓涓?/span> User DLL 涓?/span> Windows 緙栫▼鎵闇瑕佺殑澶ч噺鐨?/span> API 鍑芥暟涔熻鍖呭惈鍦?/span> Kernel DLL 涓?/span>

銆銆鍦?/span> Windows 鎿嶄綔緋葷粺涓嬌鐢?/span> DLL 鏈夊緢澶氫紭鐐癸紝鏈涓昏鐨勪竴鐐規槸澶氫釜搴旂敤紼嬪簭銆佺敋鑷蟲槸涓嶅悓璇█緙栧啓鐨勫簲鐢ㄧ▼搴忓彲浠ュ叡浜竴涓?/span> DLL 鏂囦歡錛岀湡姝e疄鐜頒簡璧勬簮 " 鍏變韓 " 錛屽ぇ澶х緝灝忎簡搴旂敤紼嬪簭鐨勬墽琛屼唬鐮侊紝鏇村姞鏈夋晥鐨勫埄鐢ㄤ簡鍐呭瓨錛涗嬌鐢?/span> DLL 鐨勫彟涓涓紭鐐規槸 DLL 鏂囦歡浣滀負涓涓崟鐙殑紼嬪簭妯″潡錛屽皝瑁呮с佺嫭绔嬫уソ錛屽湪杞歡闇瑕佸崌綰х殑鏃跺欙紝寮鍙戜漢鍛樺彧闇瑕佷慨鏀圭浉搴旂殑 DLL 鏂囦歡灝卞彲浠ヤ簡錛岃屼笖錛屽綋 DLL 涓殑鍑芥暟鏀瑰彉鍚庯紝鍙涓嶆槸鍙傛暟鐨勬敼鍙?/span> , 紼嬪簭浠g爜騫朵笉闇瑕侀噸鏂扮紪璇戙傝繖鍦ㄧ紪紼嬫椂鍗佸垎鏈夌敤錛屽ぇ澶ф彁楂樹簡杞歡寮鍙戝拰緇存姢鐨勬晥鐜囥?/span>

銆銆鏃㈢劧 DLL 閭d箞閲嶈錛屾墍浠ユ悶娓呮浠涔堟槸 DLL 銆佸浣曞湪 Windows 鎿嶄綔緋葷粺涓紑鍙戜嬌鐢?/span> DLL 鏄▼搴忓紑鍙戜漢鍛樹笉寰椾笉瑙e喅鐨勪竴涓棶棰樸傛湰鏂囬拡瀵硅繖浜涢棶棰橈紝閫氳繃涓涓畝鍗曠殑渚嬪瓙錛屽嵆鍦ㄤ竴涓?/span> DLL 涓疄鐜版瘮杈冩渶澶с佹渶灝忔暣鏁拌繖涓や釜綆鍗曞嚱鏁幫紝鍏ㄩ潰鍦拌В鏋愪簡鍦?/span> Visual C++ 緙栬瘧鐜涓嬬紪紼嬪疄鐜?/span> DLL 鐨勮繃紼嬶紝鏂囩珷涓墍鐢ㄥ埌鐨勭▼搴忎唬鐮佸湪 Windows98 緋葷粺銆?/span> Visual C++6.0 緙栬瘧鐜涓嬮氳繃銆?/span>

銆銆浜屻?/strong> DLL 鐨勬蹇?/span>

銆銆 DLL 鏄緩绔嬪湪瀹㈡埛 / 鏈嶅姟鍣ㄩ氫俊鐨勬蹇典笂錛屽寘鍚嫢騫插嚱鏁般佺被鎴栬祫婧愮殑搴撴枃浠訛紝鍑芥暟鍜屾暟鎹瀛樺偍鍦ㄤ竴涓?/span> DLL 錛堟湇鍔″櫒錛変笂騫剁敱涓涓垨澶氫釜瀹㈡埛瀵煎嚭鑰屼嬌鐢紝榪欎簺瀹㈡埛鍙互鏄簲鐢ㄧ▼搴忔垨鑰呮槸鍏跺畠鐨?/span> DLL 銆?/span> DLL 搴撲笉鍚屼簬闈欐佸簱錛屽湪闈欐佸簱鎯呭喌涓嬶紝鍑芥暟鍜屾暟鎹緙栬瘧榪涗竴涓簩榪涘埗鏂囦歡錛堥氬父鎵╁睍鍚嶄負 *.LIB 錛夛紝 Visual C++ 鐨勭紪璇戝櫒鍦ㄥ鐞嗙▼搴忎唬鐮佹椂灝嗕粠闈欐佸簱涓仮澶嶈繖浜涘嚱鏁板拰鏁版嵁騫舵妸浠栦滑鍜屽簲鐢ㄧ▼搴忎腑鐨勫叾浠栨ā鍧楃粍鍚堝湪涓璧風敓鎴愬彲鎵ц鏂囦歡銆傝繖涓繃紼嬬О涓?/span> " 闈欐侀摼鎺?/span> " 錛屾鏃跺洜涓哄簲鐢ㄧ▼搴忔墍闇鐨勫叏閮ㄥ唴瀹歸兘鏄粠搴撲腑澶嶅埗浜嗗嚭鏉ワ紝鎵浠ラ潤鎬佸簱鏈韓騫朵笉闇瑕佷笌鍙墽琛屾枃浠朵竴璧峰彂琛屻?/span>

銆銆鍦ㄥ姩鎬佸簱鐨勬儏鍐典笅錛屾湁涓や釜鏂囦歡錛屼竴涓槸寮曞叆搴擄紙 .LIB 錛夋枃浠訛紝涓涓槸 DLL 鏂囦歡錛屽紩鍏ュ簱鏂囦歡鍖呭惈琚?/span> DLL 瀵煎嚭鐨勫嚱鏁扮殑鍚嶇О鍜屼綅緗紝 DLL 鍖呭惈瀹為檯鐨勫嚱鏁板拰鏁版嵁錛屽簲鐢ㄧ▼搴忎嬌鐢?/span> LIB 鏂囦歡閾炬帴鍒版墍闇瑕佷嬌鐢ㄧ殑 DLL 鏂囦歡錛屽簱涓殑鍑芥暟鍜屾暟鎹茍涓嶅鍒跺埌鍙墽琛屾枃浠朵腑錛屽洜姝ゅ湪搴旂敤紼嬪簭鐨勫彲鎵ц鏂囦歡涓紝瀛樻斁鐨勪笉鏄璋冪敤鐨勫嚱鏁頒唬鐮侊紝鑰屾槸 DLL 涓墍瑕佽皟鐢ㄧ殑鍑芥暟鐨勫唴瀛樺湴鍧錛岃繖鏍峰綋涓涓垨澶氫釜搴旂敤紼嬪簭榪愯鏄啀鎶婄▼搴忎唬鐮佸拰琚皟鐢ㄧ殑鍑芥暟浠g爜閾炬帴璧鋒潵錛屼粠鑰岃妭鐪佷簡鍐呭瓨璧勬簮銆備粠涓婇潰鐨勮鏄庡彲浠ョ湅鍑猴紝 DLL 鍜?/span> .LIB 鏂囦歡蹇呴』闅忓簲鐢ㄧ▼搴忎竴璧峰彂琛岋紝鍚﹀垯搴旂敤紼嬪簭灝嗕細浜х敓閿欒銆?/span>

銆銆寰蔣鐨?/span> Visual C++ 鏀寔涓夌 DLL 錛屽畠浠垎鍒槸 Non-MFC Dll 錛堥潪 MFC 鍔ㄦ佸簱錛夈?/span> Regular Dll 錛堝父瑙?/span> DLL 錛夈?/span> Extension Dll 錛堟墿灞?/span> DLL 錛夈?/span> Non-MFC DLL 鎸囩殑鏄笉鐢?/span> MFC 鐨勭被搴撶粨鏋勶紝鐩存帴鐢?/span> C 璇█鍐欑殑 DLL 錛屽叾瀵煎嚭鐨勫嚱鏁版槸鏍囧噯鐨?/span> C 鎺ュ彛錛岃兘琚潪 MFC 鎴?/span> MFC 緙栧啓鐨勫簲鐢ㄧ▼搴忔墍璋冪敤銆?/span> Regular DLL: 鍜屼笅榪扮殑 Extension Dlls 涓鏍鳳紝鏄敤 MFC 綾誨簱緙栧啓鐨勶紝瀹冪殑涓涓槑鏄劇殑鐗圭偣鏄湪婧愭枃浠墮噷鏈変竴涓戶鎵?/span> CWinApp 鐨勭被錛堟敞鎰忥細姝ょ被 DLL 铏界劧浠?/span> CWinApp 媧劇敓錛屼絾娌℃湁娑堟伅寰幆錛?/span> , 琚鍑虹殑鍑芥暟鏄?/span> C 鍑芥暟銆?/span> C++ 綾繪垨鑰?/span> C++ 鎴愬憳鍑芥暟錛堟敞鎰忎笉瑕佹妸鏈 C++ 綾諱笌 MFC 鐨勫井杞熀紜 C++ 綾葷浉娣鋒穯錛夛紝璋冪敤甯歌 DLL 鐨勫簲鐢ㄧ▼搴忎笉蹇呮槸 MFC 搴旂敤紼嬪簭錛屽彧瑕佹槸鑳借皟鐢ㄧ被 C 鍑芥暟鐨勫簲鐢ㄧ▼搴忓氨鍙互錛屽畠浠彲浠ユ槸鍦?/span> Visual C++ 銆?/span> Dephi 銆?/span> Visual Basic 銆?/span> Borland C 絳夌紪璇戠幆澧冧笅鍒╃敤 DLL 寮鍙戝簲鐢ㄧ▼搴忋?/span>

銆銆甯歌 DLL 鍙堝彲緇嗗垎鎴愰潤鎬侀摼鎺ュ埌 MFC 鍜屽姩鎬侀摼鎺ュ埌 MFC 涓婄殑錛岃繖涓ょ甯歌 DLL 鐨勫尯鍒皢鍦ㄤ笅闈粙緇嶃備笌甯歌 DLL 鐩告瘮錛屼嬌鐢ㄦ墿灞?/span> DLL 鐢ㄤ簬瀵煎嚭澧炲己 MFC 鍩虹綾葷殑鍑芥暟鎴栧瓙綾伙紝鐢ㄨ繖縐嶇被鍨嬬殑鍔ㄦ侀摼鎺ュ簱錛屽彲浠ョ敤鏉ヨ緭鍑轟竴涓粠 MFC 鎵緇ф壙涓嬫潵鐨勭被銆?/span>

銆銆鎵╁睍 DLL 鏄嬌鐢?/span> MFC 鐨勫姩鎬侀摼鎺ョ増鏈墍鍒涘緩鐨勶紝騫朵笖瀹冨彧琚敤 MFC 綾誨簱鎵緙栧啓鐨勫簲鐢ㄧ▼搴忔墍璋冪敤銆備緥濡備綘宸茬粡鍒涘緩浜嗕竴涓粠 MFC 鐨?/span> CtoolBar 綾葷殑媧劇敓綾葷敤浜庡垱寤轟竴涓柊鐨勫伐鍏鋒爮錛屼負浜嗗鍑鴻繖涓被錛屼綘蹇呴』鎶婂畠鏀懼埌涓涓?/span> MFC 鎵╁睍鐨?/span> DLL 涓傛墿灞?/span> DLL 鍜屽父瑙?/span> DLL 涓嶄竴鏍鳳紝瀹冩病鏈変竴涓粠 CWinApp 緇ф壙鑰屾潵鐨勭被鐨勫璞★紝鎵浠ワ紝寮鍙戜漢鍛樺繀欏誨湪 DLL 涓殑 DllMain 鍑芥暟娣誨姞鍒濆鍖栦唬鐮佸拰緇撴潫浠g爜銆?/span>

涓夈佸姩鎬侀摼鎺ュ簱鐨勫垱寤?/font>

銆銆鍦?/span> Visual C++6.0 寮鍙戠幆澧冧笅錛屾墦寮 FileNewProject 閫夐」錛屽彲浠ラ夋嫨 Win32 Dynamic-Link Library 鎴?/span> MFC AppWizard[dll] 鏉ヤ互涓嶅悓鐨勬柟寮忔潵鍒涘緩 Non-MFC Dll 銆?/span> Regular Dll 銆?/span> Extension Dll 絳変笉鍚岀綾葷殑鍔ㄦ侀摼鎺ュ簱銆?/span>

銆銆 1 錛?/span> Win32 Dynamic-Link Library 鏂瑰紡鍒涘緩 Non-MFC DLL 鍔ㄦ侀摼鎺ュ簱

銆銆姣忎竴涓?/span> DLL 蹇呴』鏈変竴涓叆鍙g偣錛岃繖灝辮薄鎴戜滑鐢?/span> C 緙栧啓鐨勫簲鐢ㄧ▼搴忎竴鏍鳳紝蹇呴』鏈変竴涓?/span> WINMAIN 鍑芥暟涓鏍楓傚湪 Non-MFC DLL 涓?/span> DllMain 鏄竴涓己鐪佺殑鍏ュ彛鍑芥暟錛屼綘涓嶉渶瑕佺紪鍐欒嚜宸辯殑 DLL 鍏ュ彛鍑芥暟錛岀敤榪欎釜緙虹渷鐨勫叆鍙e嚱鏁板氨鑳戒嬌鍔ㄦ侀摼鎺ュ簱琚皟鐢ㄦ椂寰楀埌姝g‘鐨勫垵濮嬪寲銆傚鏋滃簲鐢ㄧ▼搴忕殑 DLL 闇瑕佸垎閰嶉澶栫殑鍐呭瓨鎴栬祫婧愭椂錛屾垨鑰呰闇瑕佸姣忎釜榪涚▼鎴栫嚎紼嬪垵濮嬪寲鍜屾竻闄ゆ搷浣滄椂錛岄渶瑕佸湪鐩稿簲鐨?/span> DLL 宸ョ▼鐨?/span> .CPP 鏂囦歡涓 DllMain() 鍑芥暟鎸夌収涓嬮潰鐨勬牸寮忎功鍐欍?/span>

BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
switch( ul_reason_for_call )
{
case DLL_PROCESS_ATTACH:
.......
case DLL_THREAD_ATTACH:
.......
case DLL_THREAD_DETACH:
.......
case DLL_PROCESS_DETACH:
.......
}
return TRUE;
}

銆銆鍙傛暟涓紝 hMoudle 鏄姩鎬佸簱琚皟鐢ㄦ椂鎵浼犻掓潵鐨勪竴涓寚鍚戣嚜宸辯殑鍙ユ焺 ( 瀹為檯涓婏紝瀹冩槸鎸囧悜 _DGROUP 孌電殑涓涓夋嫨絎?/span> ) 錛?/span> ul_reason_for_call 鏄竴涓鏄庡姩鎬佸簱琚皟鍘熷洜鐨勬爣蹇楋紝褰撹繘紼嬫垨綰跨▼瑁呭叆鎴栧嵏杞藉姩鎬侀摼鎺ュ簱鐨勬椂鍊欙紝鎿嶄綔緋葷粺璋冪敤鍏ュ彛鍑芥暟錛屽茍璇存槑鍔ㄦ侀摼鎺ュ簱琚皟鐢ㄧ殑鍘熷洜錛屽畠鎵鏈夌殑鍙兘鍊間負錛?/span> DLL_PROCESS_ATTACH: 榪涚▼琚皟鐢ㄣ?/span> DLL_THREAD_ATTACH: 綰跨▼琚皟鐢ㄣ?/span> DLL_PROCESS_DETACH: 榪涚▼琚仠姝€?/span> DLL_THREAD_DETACH: 綰跨▼琚仠姝紱 lpReserved 涓轟繚鐣欏弬鏁般傚埌姝や負姝紝 DLL 鐨勫叆鍙e嚱鏁板凡緇忓啓浜嗭紝鍓╀笅閮ㄥ垎鐨勫疄鐜頒篃涓嶉毦錛屼綘鍙互鍦?/span> DLL 宸ョ▼涓姞鍏ヤ綘鎵鎯寵杈撳嚭鐨勫嚱鏁版垨鍙橀噺浜嗐?/span>

銆銆鎴戜滑宸茬粡鐭ラ亾 DLL 鏄寘鍚嫢騫蹭釜鍑芥暟鐨勫簱鏂囦歡錛屽簲鐢ㄧ▼搴忎嬌鐢?/span> DLL 涓殑鍑芥暟涔嬪墠錛屽簲璇ュ厛瀵煎嚭榪欎簺鍑芥暟錛屼互渚夸緵緇欏簲鐢ㄧ▼搴忎嬌鐢ㄣ傝瀵煎嚭榪欎簺鍑芥暟鏈変袱縐嶆柟娉曪紝涓鏄湪瀹氫箟鍑芥暟鏃朵嬌鐢ㄥ鍑哄叧閿瓧 _declspec(dllexport) 錛屽彟澶栦竴縐嶆柟娉曟槸鍦ㄥ垱寤?/span> DLL 鏂囦歡鏃朵嬌鐢ㄦā鍧楀畾涔夋枃浠?/span> .Def 銆傞渶瑕佽鑰呮敞鎰忕殑鏄湪浣跨敤絎竴縐嶆柟娉曠殑鏃跺欙紝涓嶈兘浣跨敤 DEF 鏂囦歡銆備笅闈㈤氳繃涓や釜渚嬪瓙鏉ヨ鏄庡浣曚嬌鐢ㄨ繖涓ょ鏂規硶鍒涘緩 DLL 鏂囦歡銆?/span>

銆銆 1 錛変嬌鐢ㄥ鍑哄嚱鏁板叧閿瓧 _declspec(dllexport) 鍒涘緩 MyDll.dll 錛岃鍔ㄦ侀摼鎺ュ簱涓湁涓や釜鍑芥暟錛屽垎鍒敤鏉ュ疄鐜板緱鍒頒袱涓暟鐨勬渶澶у拰鏈灝忔暟銆傚湪 MyDll.h 鍜?/span> MyDLL.cpp 鏂囦歡涓垎鍒緭鍏ュ涓嬪師浠g爜錛?/span>

//MyDLL.h
extern "C" _declspec(dllexport) int Max(int a, int b);
extern "C" _declspec(dllexport) int Min(int a, int b);
//MyDll.cpp
錛僫 nclude
錛僫 nclude"MyDll.h"
int Max(int a, int b)
{
if(a>=b)return a;
else
return b;
}
int Min(int a, int b)
{
if(a>=b)return b;
else
return a;
}

銆銆璇ュ姩鎬侀摼鎺ュ簱緙栬瘧鎴愬姛鍚庯紝鎵撳紑 MyDll 宸ョ▼涓殑 debug 鐩綍錛屽彲浠ョ湅鍒?/span> MyDll.dll 銆?/span> MyDll.lib 涓や釜鏂囦歡銆?/span> LIB 鏂囦歡涓寘鍚?/span> DLL 鏂囦歡鍚嶅拰 DLL 鏂囦歡涓殑鍑芥暟鍚嶇瓑錛岃 LIB 鏂囦歡鍙槸瀵瑰簲璇?/span> DLL 鏂囦歡鐨?/span> " 鏄犲儚鏂囦歡 " 錛屼笌 DLL 鏂囦歡涓紝 LIB 鏂囦歡鐨勯暱搴﹁灝忕殑澶氾紝鍦ㄨ繘琛岄殣寮忛摼鎺?/span> DLL 鏃惰鐢ㄥ埌瀹冦傝鑰呭彲鑳藉凡緇忔敞鎰忓埌鍦?/span> MyDll.h 涓湁鍏抽敭瀛?/span> "extern C" 錛屽畠鍙互浣垮叾浠栫紪紼嬭璦璁塊棶浣犵紪鍐欑殑 DLL 涓殑鍑芥暟銆?/span>

銆銆 2 錛夌敤 .def 鏂囦歡鍒涘緩宸ョ▼ MyDll

銆銆涓轟簡鐢?/span> .def 鏂囦歡鍒涘緩 DLL 錛岃鍏堝垹闄や笂涓緥瀛愬垱寤虹殑宸ョ▼涓殑 MyDll.h 鏂囦歡錛屼繚鐣?/span> MyDll.cpp 騫跺湪璇ユ枃浠跺ご鍒犻櫎 錛僫 nclude MyDll.h 璇彞錛屽悓鏃跺線璇ュ伐紼嬩腑鍔犲叆涓涓枃鏈枃浠訛紝鍛藉悕涓?/span> MyDll.def 錛屽啀鍦ㄨ鏂囦歡涓姞鍏ュ涓嬩唬鐮侊細


LIBRARY MyDll
EXPORTS
Max
Min

銆銆鍏朵腑 LIBRARY 璇彞璇存槑璇?/span> def 鏂囦歡鏄睘浜庣浉搴?/span> DLL 鐨勶紝 EXPORTS 璇彞涓嬪垪鍑鴻瀵煎嚭鐨勫嚱鏁板悕縐般傛垜浠彲浠ュ湪 .def 鏂囦歡涓殑瀵煎嚭鍑芥暟鍚庡姞 @n 錛屽 Max@1 錛?/span> Min@2 錛岃〃紺鴻瀵煎嚭鐨勫嚱鏁伴『搴忓彿錛屽湪榪涜鏄懼紡榪炴椂鍙互鐢ㄥ埌瀹冦傝 DLL 緙栬瘧鎴愬姛鍚庯紝鎵撳紑宸ョ▼涓殑 Debug 鐩綍錛屽悓鏍蜂篃浼氱湅鍒?/span> MyDll.dll 鍜?/span> MyDll.lib 鏂囦歡銆?/span>

銆銆 2 錛?/span> MFC AppWizard[dll] 鏂瑰紡鐢熸垚甯歌 / 鎵╁睍 DLL

銆銆鍦?/span> MFC AppWizard[dll] 涓嬬敓鎴?/span> DLL 鏂囦歡鍙堟湁涓夌鏂瑰紡錛屽湪鍒涘緩 DLL 鏄紝瑕佹牴鎹疄闄呮儏鍐甸夋嫨鍒涘緩 DLL 鐨勬柟寮忋備竴縐嶆槸甯歌 DLL 闈欐侀摼鎺ュ埌 MFC 錛屽彟涓縐嶆槸甯歌 DLL 鍔ㄦ侀摼鎺ュ埌 MFC 銆備袱鑰呯殑鍖哄埆鏄細鍓嶈呬嬌鐢ㄧ殑鏄?/span> MFC 鐨勯潤鎬侀摼鎺ュ簱錛岀敓鎴愮殑 DLL 鏂囦歡闀垮害澶э紝涓鑸笉浣跨敤榪欑鏂瑰紡錛屽悗鑰呬嬌鐢?/span> MFC 鐨勫姩鎬侀摼鎺ュ簱錛岀敓鎴愮殑 DLL 鏂囦歡闀垮害灝忥紱鍔ㄦ侀摼鎺ュ埌 MFC 鐨勮鍒?/span> DLL 鎵鏈夎緭鍑虹殑鍑芥暟搴旇浠ュ涓嬭鍙ュ紑濮嬶細

AFX_MANAGE_STATE(AfxGetStaticModuleState( )) // 姝よ鍙ョ敤鏉ユ紜湴鍒囨崲 MFC 妯″潡鐘舵?/span>

銆銆鏈鍚庝竴縐嶆槸 MFC 鎵╁睍 DLL 錛岃繖縐?/span> DLL 鐗圭偣鏄敤鏉ュ緩绔?/span> MFC 鐨勬淳鐢熺被錛?/span> Dll 鍙鐢?/span> MFC 綾誨簱鎵緙栧啓鐨勫簲鐢ㄧ▼搴忔墍璋冪敤銆傚墠闈㈡垜浠凡緇忎粙緇嶈繃錛?/span> Extension DLLs 鍜?/span> Regular DLLs 涓嶄竴鏍鳳紝瀹冩病鏈変竴涓粠 CWinApp 緇ф壙鑰屾潵鐨勭被鐨勫璞★紝緙栬瘧鍣ㄩ粯璁や簡涓涓?/span> DLL 鍏ュ彛鍑芥暟 DLLMain() 浣滀負瀵?/span> DLL 鐨勫垵濮嬪寲錛屼綘鍙互鍦ㄦ鍑芥暟涓疄鐜板垵濮嬪寲 , 浠g爜濡備笅錛?/span>

BOOL WINAPI APIENTRY DLLMain(HINSTANCE hinstDll 錛?/span> DWORD reason 錛?/span> LPVOID flmpload)
{
switch(reason)
{
……………//
鍒濆鍖栦唬鐮侊紱

}
return true;
}

銆銆鍙傛暟 hinstDll 瀛樻斁 DLL 鐨勫彞鏌勶紝鍙傛暟 reason 鎸囨槑璋冪敤鍑芥暟鐨勫師鍥狅紝 lpReserved 鏄竴涓緋葷粺鎵淇濈暀鐨勫弬鏁般傚浜庨殣寮忛摼鎺ユ槸涓涓潪闆跺鹼紝瀵逛簬鏄懼紡閾炬帴鍊兼槸闆躲?/span>

銆銆鍦?/span> MFC 涓嬪緩绔?/span> DLL 鏂囦歡錛屼細鑷姩鐢熸垚 def 鏂囦歡妗嗘灦錛屽叾瀹冧笌寤虹珛浼犵粺鐨?/span> Non-MFC DLL 娌℃湁浠涔堝尯鍒紝鍙鍦ㄧ浉搴旂殑澶存枃浠跺啓鍏ュ叧閿瓧 _declspec(dllexport) 鍑芥暟綾誨瀷鍜屽嚱鏁板悕絳夛紝鎴栧湪鐢熸垚鐨?/span> def 鏂囦歡涓?/span> EXPORTS 涓嬭緭鍏ュ嚱鏁板悕灝卞彲浠ヤ簡銆傞渶瑕佹敞鎰忕殑鏄湪鍚戝叾瀹冨紑鍙戜漢鍛樺垎鍙?/span> MFC 鎵╁睍 DLL 鏃訛紝涓嶈蹇樿鎻愪緵鎻忚堪 DLL 涓被鐨勫ご鏂囦歡浠ュ強鐩稿簲鐨?/span> .LIB 鏂囦歡鍜?/span> DLL 鏈韓錛屾鍚庡紑鍙戜漢鍛樺氨鑳藉厖鍒嗗埄鐢ㄤ綘寮鍙戠殑鎵╁睍 DLL 浜嗐?br>
銆搴旂敤紼嬪簭浣跨敤DLL鍙互閲囩敤涓ょ鏂瑰紡錛氫竴縐嶆槸闅愬紡閾炬帴錛屽彟涓縐嶆槸鏄懼紡閾炬帴銆傚湪浣跨敤DLL涔嬪墠棣栧厛瑕佺煡閬?/span>DLL涓嚱鏁扮殑緇撴瀯淇℃伅銆?/span>Visual C++6.0鍦?/span>VCin鐩綍涓嬫彁渚涗簡涓涓悕涓?/span>Dumpbin.exe鐨勫皬紼嬪簭錛岀敤瀹冨彲浠ユ煡鐪?/span>DLL鏂囦歡涓殑鍑芥暟緇撴瀯銆傚彟澶栵紝Windows緋葷粺灝嗛伒寰笅闈㈢殑鎼滅儲欏哄簭鏉ュ畾浣?/span>DLL錛?/span> 1錛庡寘鍚?/span>EXE鏂囦歡鐨勭洰褰曪紝2錛庤繘紼嬬殑褰撳墠宸ヤ綔鐩綍錛?/span> 3錛?/span>Windows緋葷粺鐩綍錛?/span> 4錛?/span>Windows鐩綍錛?/span>5錛庡垪鍦?/span>Path鐜鍙橀噺涓殑涓緋誨垪鐩綍銆?/span>

銆銆1錛庨殣寮忛摼鎺?/span>

銆銆闅愬紡閾炬帴灝辨槸鍦ㄧ▼搴忓紑濮嬫墽琛屾椂灝卞皢DLL鏂囦歡鍔犺澆鍒板簲鐢ㄧ▼搴忓綋涓傚疄鐜伴殣寮忛摼鎺ュ緢瀹規槗錛屽彧瑕佸皢瀵煎叆鍑芥暟鍏抽敭瀛?/span>_declspec(dllimport)鍑芥暟鍚嶇瓑鍐欏埌搴旂敤紼嬪簭鐩稿簲鐨勫ご鏂囦歡涓氨鍙互浜嗐備笅闈㈢殑渚嬪瓙閫氳繃闅愬紡閾炬帴璋冪敤MyDll.dll搴撲腑鐨?/span>Min鍑芥暟銆傞鍏堢敓鎴愪竴涓」鐩負TestDll錛屽湪DllTest.h銆?/span>DllTest.cpp鏂囦歡涓垎鍒緭鍏ュ涓嬩唬鐮侊細

 

//Dlltest.h
#pragma comment(lib
錛?/span> "MyDll.lib")
extern "C"_declspec(dllimport) int Max(int a,int b);
extern "C"_declspec(dllimport) int Min(int a,int b);
//TestDll.cpp
錛僫 nclude
錛僫 nclude"Dlltest.h"
void main()
{int a;
a=min(8,10)
printf("
姣旇緝鐨勭粨鏋滀負 %d " 錛?/span> a);
}

銆銆鍦ㄥ垱寤?/span> DllTest.exe 鏂囦歡涔嬪墠錛岃鍏堝皢 MyDll.dll 鍜?/span> MyDll.lib 鎷瘋礉鍒板綋鍓嶅伐紼嬫墍鍦ㄧ殑鐩綍涓嬮潰錛屼篃鍙互鎷瘋礉鍒?/span> windows 鐨?/span> System 鐩綍涓嬨傚鏋?/span> DLL 浣跨敤鐨勬槸 def 鏂囦歡錛岃鍒犻櫎 TestDll.h 鏂囦歡涓叧閿瓧 extern "C" 銆?/span> TestDll.h 鏂囦歡涓殑鍏抽敭瀛?/span> Progam commit 鏄 Visual C+ 鐨勭紪璇戝櫒鍦?/span> link 鏃訛紝閾炬帴鍒?/span> MyDll.lib 鏂囦歡錛屽綋鐒訛紝寮鍙戜漢鍛樹篃鍙互涓嶄嬌鐢?/span> #pragma comment(lib 錛?/span> "MyDll.lib") 璇彞錛岃岀洿鎺ュ湪宸ョ▼鐨?/span> Setting->Link 欏電殑 Object/Moduls 鏍忓~鍏?/span> MyDll.lib 鏃㈠彲銆?/span>

銆銆 2 錛庢樉寮忛摼鎺?/span>

銆銆鏄懼紡閾炬帴鏄簲鐢ㄧ▼搴忓湪鎵ц榪囩▼涓殢鏃跺彲浠ュ姞杞?/span> DLL 鏂囦歡錛屼篃鍙互闅忔椂鍗歌澆 DLL 鏂囦歡錛岃繖鏄殣寮忛摼鎺ユ墍鏃犳硶浣滃埌鐨勶紝鎵浠ユ樉寮忛摼鎺ュ叿鏈夋洿濂界殑鐏墊椿鎬э紝瀵逛簬瑙i噴鎬ц璦鏇翠負鍚堥傘備笉榪囧疄鐜版樉寮忛摼鎺ヨ楹葷儲涓浜涖傚湪搴旂敤紼嬪簭涓敤 LoadLibrary 鎴?/span> MFC 鎻愪緵鐨?/span> AfxLoadLibrary 鏄懼紡鐨勫皢鑷繁鎵鍋氱殑鍔ㄦ侀摼鎺ュ簱璋冭繘鏉ワ紝鍔ㄦ侀摼鎺ュ簱鐨勬枃浠跺悕鍗蟲槸涓婅堪涓や釜鍑芥暟鐨勫弬鏁幫紝姝ゅ悗鍐嶇敤 GetProcAddress() 鑾峰彇鎯寵寮曞叆鐨勫嚱鏁般傝嚜姝わ紝浣犲氨鍙互璞′嬌鐢ㄥ鍚屽湪搴旂敤紼嬪簭鑷畾涔夌殑鍑芥暟涓鏍鋒潵璋冪敤姝ゅ紩鍏ュ嚱鏁頒簡銆傚湪搴旂敤紼嬪簭閫鍑轟箣鍓嶏紝搴旇鐢?/span> FreeLibrary 鎴?/span> MFC 鎻愪緵鐨?/span> AfxFreeLibrary 閲婃斁鍔ㄦ侀摼鎺ュ簱銆備笅闈㈡槸閫氳繃鏄懼紡閾炬帴璋冪敤 DLL 涓殑 Max 鍑芥暟鐨勪緥瀛愩?/span>

 

錛僫 nclude
錛僫 nclude
void main(void)
{
typedef int(*pMax)(int a,int b);
typedef int(*pMin)(int a,int b);
HINSTANCE hDLL;
PMax Max
HDLL=LoadLibrary("MyDll.dll");//
鍔犺澆鍔ㄦ侀摼鎺ュ簱 MyDll.dll 鏂囦歡錛?/span>
Max=(pMax)GetProcAddress(hDLL,"Max");
A=Max(5,8);
Printf("
姣旇緝鐨勭粨鏋滀負 %d " 錛?/span> a);
FreeLibrary(hDLL);//
鍗歌澆 MyDll.dll 鏂囦歡錛?/span>
}

銆銆鍦ㄤ笂渚嬩腑浣跨敤綾誨瀷瀹氫箟鍏抽敭瀛?/span> typedef 錛屽畾涔夋寚鍚戝拰 DLL 涓浉鍚岀殑鍑芥暟鍘熷瀷鎸囬拡錛岀劧鍚庨氳繃 LoadLibray() 灝?/span> DLL 鍔犺澆鍒板綋鍓嶇殑搴旂敤紼嬪簭涓茍榪斿洖褰撳墠 DLL 鏂囦歡鐨勫彞鏌勶紝鐒跺悗閫氳繃 GetProcAddress() 鍑芥暟鑾峰彇瀵煎叆鍒板簲鐢ㄧ▼搴忎腑鐨勫嚱鏁版寚閽堬紝鍑芥暟璋冪敤瀹屾瘯鍚庯紝浣跨敤 FreeLibrary() 鍗歌澆 DLL 鏂囦歡銆傚湪緙栬瘧紼嬪簭涔嬪墠錛岄鍏堣灝?/span> DLL 鏂囦歡鎷瘋礉鍒板伐紼嬫墍鍦ㄧ殑鐩綍鎴?/span> Windows 緋葷粺鐩綍涓嬨?/span>

銆銆浣跨敤鏄懼紡閾炬帴搴旂敤紼嬪簭緙栬瘧鏃朵笉闇瑕佷嬌鐢ㄧ浉搴旂殑 Lib 鏂囦歡銆傚彟澶栵紝浣跨敤 GetProcAddress() 鍑芥暟鏃訛紝鍙互鍒╃敤 MAKEINTRESOURCE() 鍑芥暟鐩存帴浣跨敤 DLL 涓嚱鏁板嚭鐜扮殑欏哄簭鍙鳳紝濡傚皢 GetProcAddress(hDLL,"Min") 鏀逛負 GetProcAddress(hDLL, MAKEINTRESOURCE(2)) 錛堝嚱鏁?/span> Min() 鍦?/span> DLL 涓殑欏哄簭鍙鋒槸 2 錛夛紝榪欐牱璋冪敤 DLL 涓殑鍑芥暟閫熷害寰堝揩錛屼絾鏄璁頒綇鍑芥暟鐨勪嬌鐢ㄥ簭鍙鳳紝鍚﹀垯浼氬彂鐢熼敊璇?/span> 



neter 2007-12-04 13:44 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美日韩一二区| 99re在线精品| 葵司免费一区二区三区四区五区| 久久蜜臀精品av| 欧美三级视频| 欧美日韩一区在线观看视频| 免费不卡欧美自拍视频| 快射av在线播放一区| 欧美精品一区二区视频| 久久亚洲不卡| 免费成人激情视频| 欧美激情精品久久久久久黑人 | 中文精品视频| 久久午夜精品| 国产精品网站在线| 久久国产精彩视频| 亚洲一区久久久| 久久精品视频一| 欧美日韩一区在线| 亚洲欧美国产一区二区三区| 亚洲特色特黄| 免费欧美电影| 在线成人www免费观看视频| 欧美激情aⅴ一区二区三区| 欧美性感一类影片在线播放| 一区二区三区在线免费播放| 99一区二区| 亚洲精选视频在线| 欧美女同视频| 亚洲精品一区二区三区不| 久久精品视频一| 亚洲欧美一区二区精品久久久| 久久露脸国产精品| 正在播放亚洲| 亚洲娇小video精品| 亚洲日本成人| 亚洲女女女同性video| 在线精品一区二区| 久久久久综合| 国产精品99一区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美伊人久久| 一区二区三区久久| 久久久综合香蕉尹人综合网| 国产在线一区二区三区四区| 亚洲午夜一区二区三区| 国产精品99久久久久久久女警 | 西西人体一区二区| 亚洲国内精品| 一区二区三区在线视频免费观看| 一区在线影院| 亚洲一区二区三区国产| 麻豆精品精华液| 美女图片一区二区| 午夜精品一区二区三区在线视| 久久免费精品视频| 国产精品乱子乱xxxx| 尤物视频一区二区| 久久精品在线观看| 亚洲尤物在线视频观看| 免费高清在线一区| 午夜精品久久久久久99热软件| 国产精品网站在线| 蜜桃视频一区| 国产一区二区三区电影在线观看| 香蕉成人伊视频在线观看| 国产精品久久久久久久久久久久久久 | 国内精品久久久| 极品av少妇一区二区| 小处雏高清一区二区三区| 亚洲免费一级电影| 国产欧美日韩在线播放| 亚洲视频大全| 亚洲免费在线精品一区| 国产日韩在线亚洲字幕中文| 亚洲性感激情| 久久成人国产| 米奇777超碰欧美日韩亚洲| 另类天堂av| 亚洲一区免费网站| 欧美在线视频二区| 亚洲欧洲一区二区在线播放| 中文欧美日韩| 激情综合久久| 午夜老司机精品| aa级大片欧美| 久久噜噜亚洲综合| 久久亚洲欧洲| 欧美日韩性视频在线| 久久久www成人免费毛片麻豆| 免费看av成人| 久久在线免费观看| 亚洲激情一区二区| 久久亚洲私人国产精品va媚药| 在线免费观看一区二区三区| 午夜日韩激情| 麻豆精品91| 亚洲欧美日韩精品久久久久| 国产一区二区三区久久| 久久综合色影院| 亚洲一区亚洲| 91久久在线| 亚洲国产成人久久综合一区| 日韩一级在线观看| 亚洲综合日韩在线| 亚洲欧美在线一区| 欧美日韩激情小视频| 99re6这里只有精品| 亚洲国产精品v| 国产精品夜夜夜| 国产区亚洲区欧美区| 欧美日韩一区二区三区视频| 亚洲伊人久久综合| 国产精品系列在线| 欧美一级免费视频| 先锋影音网一区二区| 亚洲激情国产精品| 老司机免费视频久久| 女人色偷偷aa久久天堂| 亚洲激情网站| 国产精品成人国产乱一区 | 亚洲精品在线免费观看视频| 黑人一区二区三区四区五区| 狠狠爱综合网| 欧美精品观看| 久久久久.com| 欧美好吊妞视频| 亚洲激情视频网| 韩日午夜在线资源一区二区| 一区二区三区高清不卡| 欧美激情一区二区在线| 久久精品免费电影| 99这里只有久久精品视频| 国产亚洲精品美女| 欧美成人a视频| 欧美 日韩 国产在线| 欧美一级网站| 午夜精彩视频在线观看不卡 | 亚洲精品一线二线三线无人区| 亚洲少妇在线| 另类激情亚洲| 久久这里有精品15一区二区三区 | 欧美日韩精品二区| 欧美成人免费观看| 久久综合国产精品| 美女视频黄 久久| 另类春色校园亚洲| 欧美大片免费久久精品三p| 久久久久久久精| 亚洲成色最大综合在线| 亚洲精品少妇30p| 亚洲精品裸体| 亚洲私人影院在线观看| 黑人操亚洲美女惩罚| 亚洲欧美日本国产有色| 中国av一区| 久久国内精品自在自线400部| 美女精品在线| 亚洲视频第一页| 久久精品国产亚洲精品 | 牛牛国产精品| 欧美亚一区二区| 一区精品久久| 99国产精品国产精品久久| 亚洲欧美日韩国产一区二区| 欧美成人首页| 亚洲视频一区二区免费在线观看| 国产精品自拍一区| 久久综合色一综合色88| 一区二区三区毛片| 欧美高清一区二区| 狠狠操狠狠色综合网| 亚洲欧美视频一区| 亚洲一区二区三区中文字幕 | 午夜亚洲性色福利视频| 欧美日本精品| 香蕉精品999视频一区二区| 亚洲伦伦在线| 国产精品视频导航| 亚洲国产美女久久久久| 中文亚洲免费| 午夜综合激情| 狠狠色伊人亚洲综合网站色| 亚洲高清自拍| 国产日韩精品在线播放| 久久嫩草精品久久久久| 欧美国产一区二区| 亚洲一区成人| 欧美大片在线看免费观看| 亚洲欧美成人| 亚洲欧美国产不卡| 裸体一区二区三区| 先锋影音久久| 国产精品国产三级国产专区53 | 亚洲色图综合久久| 久久免费视频网| 亚洲一区二区精品| 欧美激情精品久久久久久大尺度 | 国产精品视频免费一区| 久久成人在线|