锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲香蕉网站,在线国产欧美,亚洲乱码国产乱码精品精http://www.shnenglu.com/heath/There is no end, it is just the beginning! - A Game Developer's Noteszh-cnWed, 24 Sep 2025 01:07:55 GMTWed, 24 Sep 2025 01:07:55 GMT60瑙e喅鍦║nity涓皝瑁匘ebug.Log鍚庝唬鐮佽瀹氫綅闂http://www.shnenglu.com/heath/archive/2016/06/21/213777.htmlHeathHeathTue, 21 Jun 2016 02:53:00 GMThttp://www.shnenglu.com/heath/archive/2016/06/21/213777.htmlhttp://www.shnenglu.com/heath/comments/213777.htmlhttp://www.shnenglu.com/heath/archive/2016/06/21/213777.html#Feedback3http://www.shnenglu.com/heath/comments/commentRss/213777.htmlhttp://www.shnenglu.com/heath/services/trackbacks/213777.html浼楁墍鍛ㄧ煡錛屼唬鐮佷腑浣跨敤Debug.Log*杈撳嚭鐨勬棩蹇楀湪Unity鐨凜onsoleWindow涓彲浠ュ弻鍑誨畾浣嶅埌瀵瑰簲鐨勪唬鐮佽錛岀劧鑰屽皢Debug.Log*灝佽鍒拌嚜宸辯殑鏃ュ織綾諱腑鍚庯紝瀹氫綅灝卞け鍘繪剰涔変簡銆傚師鍥犲緢綆鍗曪紝Unity鍙細澶勭悊StackFrame鐨勬爤欏朵俊鎭紝瀹冧滑淇濆瓨鍦↙ogEntry涓紝鏍堥《鐨勬柟娉曞搴旂殑鑴氭湰鏂囦歡浼氫互鍏秈nstanceID鏉ヤ繚瀛橈紝鍏朵粬StackTrace淇℃伅鍒欎互瀛楃涓茬粨鏋滃瓨鍌紝鏈緇堝湪鍙屽嚮ConsoleWindow涓殑ListView鏉$洰鏃墮氳繃鎸囧畾浜哋nOpenAssetAttribute鐨刢allback鏉ユ墦寮浠g爜緙栬緫鍣ㄣ傚叾涓紝OnOpenAssetAttribute鍙傛暟鐢ㄤ簬澶勭悊瀛樺湪澶氫釜Callback鏃剁殑浼樺厛綰ч棶棰樸?/p>

image

閫氳繃闃呰ConsoleWindow浠g爜錛屾兂鍒頒簡涓涓В鍐蟲濊礬錛氳嚜宸卞疄鐜癘nOpenAsset錛岄氳繃鑾峰彇ConsoleWindow涓殑ListView寰楀埌褰撳墠閫変腑鐨剅ow錛岀劧鍚庡湪LogEntries涓彇寰楄琛屽搴旂殑LogEntry錛屽叾涓殑condition瀛楁淇濆瓨浜哠tackTrace瀛楃涓詫紝鏈鍚庤繃婊ゆ帀鍖呰鐨勬棩蹇楃被鍚庢嬁鍒拌剼鏈枃浠跺悕鍜屼唬鐮佽錛岀敤OpenFileAtLineExternal鐩存帴鎵撳紑銆傚湪瀹炵幇榪囩▼涓彂鐜幫紝瀹屽叏娌℃湁蹇呰鎷垮埌LogEntry錛屽洜涓篊onsoleWindow涓殑m_ActiveText灝辨槸StackTrace瀛楃涓詫紝鐩存帴澶勭悊灝卞ソ浜嗐?/p>

鍦ㄦ兂鍒拌鏂規涔嬪墠錛岀湅榪囦袱涓В鍐蟲柟娉曪細1錛夊皢鏃ュ織綾葷紪璇戞垚DLL錛?錛夎緭鍑烘棩蹇楁椂鑷繁璁板綍StackFrame錛岄氳繃涓緋誨垪鎵嬫鍦∣nOpenAsset鏌ユ壘LogEntry涓搴旂殑StackFrame銆備笉榪囪繖涓ょ鏂規閮戒笉鑳芥弧瓚充釜浜虹殑瀹岀編涓諱箟鎯呰妭錛屾柟妗?澶卞幓浜嗛緙栬瘧瀹忕殑鐏墊椿錛屼竴鏃︽棩蹇楃郴緇熸敼鍔ㄩ渶瑕侀噸緙朌LL鍜屽鐞嗕緷璧栵紝鏂規2浣庢晥涓旇繃浜庡鏉傘?/p>

鏈鍚庢憳鍑轟唬鐮佷緵鍙傝冿紝瀹炵幇鐜涓猴細Unity 4.7.5f1, UnityVS+Visual Studio 2015 Pro銆?/p>

2016-06-21_10-35-04



Heath 2016-06-21 10:53 鍙戣〃璇勮
]]>
Unity涓煭璺濈瀵昏礬鏂規http://www.shnenglu.com/heath/archive/2016/03/13/212997.htmlHeathHeathSun, 13 Mar 2016 10:40:00 GMThttp://www.shnenglu.com/heath/archive/2016/03/13/212997.htmlhttp://www.shnenglu.com/heath/comments/212997.htmlhttp://www.shnenglu.com/heath/archive/2016/03/13/212997.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/212997.htmlhttp://www.shnenglu.com/heath/services/trackbacks/212997.html

浠嶢*鍒癗avmesh閮芥槸瀹屽鐨勫璺柟妗堬紝鑳芥弧瓚充換鎰忚窛紱葷殑璺緞鎼滅儲銆傚畠浠兘闇瑕佹牴鎹満鏅鍏堢敓鎴愮浉鍏蟲暟鎹紙A*鏄鏁寸殑2D鏍煎瓙鏁版嵁錛孨avmesh鍒欐槸mesh鏁版嵁錛夛紝鍦ㄥ満鏅昂瀵哥‘瀹氱殑鎯呭喌涓嬶紝Navmesh綆楁硶鐨勭綉鏍兼暟浼氶殢闅滅鐨勫鏉傜▼搴︽敼鍙橈紝鑰孉*鏄浐瀹氱殑銆傚氨鏃剁┖澶嶆潅搴﹁岃█錛岄氬父鎯呭喌涓婲avmesh瑕佷紭浜嶢*錛屼絾涓浜涗紭鍖栫殑鍙樼A*綆楁硶錛堝錛欻ierarchy A*錛夊湪闀胯窛紱誨璺笂瑕佷紭浜嶯avmesh銆傜劧鑰屽浜庡姩鎬佹敼鍙樼殑鍦烘櫙闅滅錛屽湪浣跨敤浠ヤ笂涓ょ綆楁硶鏃墮兘浼氭湁鎬ц兘鍜岃璁′笂鐨勯檺鍒躲傚湪瀹為檯欏圭洰涓紝鎴戜滑閫氬父灝嗘垬鏂楃害鏉熷湪涓瀹氬尯鍩熷唴錛岃屼笖榪欎簺鍖哄煙鏈夊彲鑳芥槸璇稿縐誨姩騫沖彴涔嬬被鐨勶紝姝ゆ椂A*鍜孨avmesh鍙兘浼氶潰涓存棤娉曚嬌鐢ㄧ殑澧冨湴銆備笅闈㈣繖涓柟妗堟槸鍦ㄦ礂婢℃椂紿佺劧鎯沖埌鐨勶紝紜垏鐐瑰簲璇ョО涔嬩負閬塊殰綆楁硶錛屽洜涓哄畠婧愯嚜涔嬪墠鍋氭櫤鑳介伩闅滃皬杞︽椂鐨勭粡楠屻?/p>

璁撅紝瑙掕壊鍒扮洰鏍囩偣鐨勬柟鍚戝悜閲忎負D0錛屾姇灝勭嚎闀垮害涓篖錛屾帰嫻嬮棿闅欒涓何革紝N = 180 / 胃錛岀畻娉曟祦紼嬪涓嬶細

image

綆楁硶閫氳繃浼樺厛鎼滅儲鐩爣鏂瑰悜宸﹀彸鏃犻殰紕嶇┖闂達紝鍑忓皯媯嫻嬫鏁幫紝閫氳繃璁劇疆胃鍜孡鍙互鎺у埗媯嫻嬬簿搴﹀拰鑼冨洿銆傛澶栵紝璁劇疆鍚堥傜殑Collision Matrix鍜屾嫻嬮鐜囧彲浠ョ害鏉烺ayCast鐨勬ц兘寮閿銆?/p>

Heath 2016-03-13 18:40 鍙戣〃璇勮
]]>
Font Outline in Unityhttp://www.shnenglu.com/heath/archive/2016/02/05/212793.htmlHeathHeathFri, 05 Feb 2016 09:36:00 GMThttp://www.shnenglu.com/heath/archive/2016/02/05/212793.htmlhttp://www.shnenglu.com/heath/comments/212793.htmlhttp://www.shnenglu.com/heath/archive/2016/02/05/212793.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/212793.htmlhttp://www.shnenglu.com/heath/services/trackbacks/212793.html

鍥㈤槦鍦ㄤ嬌鐢║GUI鏃訛紝鍙戠幇鍏禣utline瀹炵幇鏄皢鏂囧瓧鐨勯《鐐瑰湪涓婁笅宸﹀彸鏂瑰悜涓婂仛鍋忕Щ鐢熸垚浜嗘柊鐨勯《鐐癸紝鎵浠ラ《鐐瑰拰涓夎闈㈡暟閲忛兘澧炲姞浜?鍊嶃傚彈Glow涓璆aussian Filter鍙疄鐜拌竟鐣屽鎵╂晥鏋滅殑鍚彂錛屽仛浜嗕釜瀹為獙錛屽湪絎竴涓猵ass涓嬌鐢‵ilter瀵笷ont Texture鐨凙lpha榪涜4鎴栬?鏂瑰悜閲囨牱錛岀浜屼釜pass姝e父娓叉煋瀛椾綋錛岀劧鍚庡皢涓よ呰繘琛孉lpha blend銆?/p>

image

No Outline

image

Tow-Pass Outline with Four-Direction Sampling

image

Outline in UGUI

浠庣粨鏋滀笂鏉ョ湅錛屽湪涓瀹氳寖鍥寸殑綰圭悊鍧愭爣鍋忕Щ涓嬪彲浠ユ帴鍙楋紝浣嗛檺鍒朵篃寰堟槑鏄撅紝涓嬪浘鏄亸縐昏繃澶у鑷村け鐪?/p>

image



Heath 2016-02-05 17:36 鍙戣〃璇勮
]]>
Real-time Cutscene涓殑鎽勫儚鏈烘彃鍊肩爺絀?/title><link>http://www.shnenglu.com/heath/archive/2013/10/26/203921.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sat, 26 Oct 2013 01:07:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2013/10/26/203921.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/203921.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2013/10/26/203921.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/203921.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/203921.html</trackback:ping><description><![CDATA[<p>     寰堝DCC宸ュ叿閮芥彁渚涗簡Curves Editor錛岄氳繃鎺у埗鐐規潵鏋勯犳彃鍊兼洸綰匡紝榪欐牱鍙互綺劇‘鍦版彃鍊艱建榪廣傚湪鎴戜滑娓告垙鐨勮繃鍦虹紪杈戝櫒涓紝鎴戜滑騫舵病鏈夊紑鍙戣繖綾誨伐鍏鳳紝涓鏂歸潰鐢變簬鏃墮棿浜哄姏鏈夐檺錛屽彟涓鏂歸潰甯屾湜鑳藉鎻愪緵涓縐嶇洿瑙傜畝渚跨殑鏂瑰紡杈懼埌鎯寵鐨勬晥鏋溿傚洜姝ゆ垜浠敮鎸佷袱縐嶆憚鍍忔満璺緞鍒涘緩鏂規硶錛?錛変互鎽勫儚鏈鴻瑙掔洿鎺ュ皢鎽勫儚鏈烘憜鍒版兂瑕佷綅緗紝淇濆瓨姝ゆ椂鎽勫儚鏈虹殑浣嶇疆涓庢棆杞紱2錛夊皢3DS Max涓殑璺緞瀵煎嚭涓烘父鎴忕殑榪囧満鏍煎紡銆傚墠鑰呭彲浠ユ弧瓚?0%鐨勮繃鍦虹紪杈戦渶姹傦紝鍚庤呮弧瓚充簡10%鐨勫鏉傝礬寰勭紪杈戦渶姹傘?<p>     涓嶇浣跨敤閭g鏂瑰紡錛岄兘闇瑕佸皢紱繪暎鐐硅繘琛屾彃鍊鹼紙interpolation錛変互渚垮緱鍒板鉤婊戣礬寰勩傝繖閲屽氨鐗墊秹鍒頒綅緗彃鍊煎拰鏈濆悜鎻掑箋?<p>     浠庢彃鍊煎嚱鏁頒笂鍙垎涓轟笁綾伙細1錛夌嚎鎬э紱2錛夊欏瑰紡錛?錛夋牱鏉°傞【鍚嶆濅箟錛岀嚎鎬ф彃鍊奸噰鐢ㄧ嚎鎬у嚱鏁幫紝澶氶」寮忔彃鍊奸噰鐢ㄥ欏瑰紡錛岃屾牱鏉℃彃鍊煎垯閲囩敤浜嗕竴緇勫欏瑰紡緇勬垚鐨勫垎孌靛嚱鏁般傜敱浜庢憚鍍忔満鐨勫叧閿礬寰勭偣閫氬父閮戒細澶т簬2涓紝鎵浠ユ彃鍊兼柟娉曚笂灝卞繀欏婚夊彇鏍鋒潯鏂規硶銆?<p><font size="4" face="Arial"><strong>涓銆佷綅緗彃鍊?/strong></font></p> <p><font size="3"><strong>1.1 鏍鋒潯綾誨瀷閫夋嫨</strong></font> <p>     鍦ㄨ繖閲屾垜浠粎鑰冭檻涓夋鏍鋒潯鎻掑鹼紝鍥犱負瀹冧滑鍙揪鍒癈2榪炵畫銆備笁嬈℃牱鏉′腑涓昏浠ezier銆丆atmull-Rom銆佸潎鍖B鏍鋒潯涓鴻冩煡瀵硅薄錛屽畠浠兘鍏鋒湁璁$畻寮閿灝忕殑浼樼偣銆傚彲浠ラ氳繃涓嬮潰鍏紡鏉ュ畾涔夊畠浠細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(18)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(18)" border="0" alt="Image(18)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(18)_thumb.png" width="500" height="117"></a> <p>     綆鍖栦負錛?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(19)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(19)" border="0" alt="Image(19)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(19)_thumb.png" width="130" height="32"></a> <p>     涓嬮潰琛ㄦ牸鍒楀嚭浜嗕笁縐嶆彃鍊兼洸綰垮搴旂殑G鍜孧錛?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(20)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(20)" border="0" alt="Image(20)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(20)_thumb.png" width="483" height="339"></a> <p>     濡備笅鍥炬墍紺猴紝瀵?涓偣榪涜Bezier鎻掑煎緱鍒扮殑鏇茬嚎鍙細鏈変袱涓偣琚洸綰跨┛榪囷紝鑰孊-Spline鎻掑煎緱鍒扮殑鏇茬嚎涓嶄細緇忚繃鎺у埗鐐癸紝鍙湁Catmull-Rom Spline鍙互寰楀埌絀胯繃闄よ搗鐐瑰拰緇堢偣涔嬮棿鐨勬墍鏈夋帶鍒剁偣銆傛鍥犱負Catmull-Rom鍏鋒湁榪欎釜鐗規э紝浣垮緱瀹冭騫挎硾鍦板簲鐢ㄥ湪鍏抽敭甯у鉤婊戞彃鍊間笂錛屽洜姝ゆ垜浠夋嫨浜咰atmull-Rom鏍鋒潯浣滀負鎽勫儚鏈轟綅緗偣鐨勬彃鍊肩畻娉曘?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(21)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(21)" border="0" alt="Image(21)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(21)_thumb.png" width="400" height="917"></a> <p><font size="3"><strong>1.2 瀹炵幇</strong></font> <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image" border="0" alt="Image" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image_thumb.jpg" width="759" height="732"></a> <p><font size="3"><strong>鍙傝冿細</strong></font> <p>[1] <a >Mathematics for 3D Game Programming and Computer Graphics 3e by Eric Lengyel</a> <p>[2] <a >http://en.wikipedia.org/wiki/Catmull-Rom_spline#Catmull.E2.80.93Rom_spline</a> <p>[3] <a >http://www.codeproject.com/Articles/30838/Overhauser-Catmull-Rom-Splines-for-Camera-Animatio</a> <p><font size="4"><strong>浜屻佹湞鍚戯紙鏃嬭漿錛夋彃鍊?/strong></font>   <p><font size="3"><strong>2.1 Euler Angles VS Quaternion</strong></font>         <p>     涓夌淮絀洪棿涓弿榪版棆杞殑涓昏鏂規硶鏈塃uler Angles鍜孮uaternion銆侲uler Angles鏈変笁涓槑鏄劇殑闂錛?錛変笁杞翠笂鐨勬棆杞『搴忔晱鎰燂紱2錛塆imbal Lock鐜拌薄瀵艱嚧鏃嬭漿鑷敱搴︿涪澶憋紱3錛夌嫭绔嬪湴瀵逛笁涓棆杞垎閲忚繘琛屾彃鍊鹼紝蹇界暐浜嗕笁杞翠箣闂寸殑渚濊禆鍏崇郴錛屽鑷存彃鍊肩粨鏋滀笉鐞嗘兂銆備笌Euler Angles涓嶅悓鐨勬槸錛孮uaternion娌℃湁灝嗘棆杞垎瑙e埌涓変釜杞村悜涓婏紝鑰屾槸鐢ㄤ竴涓棆杞醬鍜岀粫璇ヨ醬鐨勬棆杞搴︽潵鎻忚堪錛屾墍浠ヤ粠鏍規湰涓婃秷闄や簡Euler Angles鐨勪笁澶ч棶棰樸傛湁鍏砆uaternion鐨勮緇嗘弿榪板彲鍙傝僛1]錛屽湪姝や笉鍐嶇瘡榪般?<p><font size="3"><strong>2.2 LERP VS SLERP</strong></font> <p>     鍥涘厓鏁扮嚎鎬ф彃鍊鹼紙Linear Quaternion interpolation錛夌殑璁$畻鍏紡涓猴細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(1)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(1)" border="0" alt="Image(1)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(1)_thumb.jpg" width="510" height="306"></a> <p>     鍥涘厓鏁扮悆闈㈢嚎鎬ф彃鍊鹼紙Spherical Linear Quaternion interpolation錛夌殑璁$畻鍏紡涓猴細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(2)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(2)" border="0" alt="Image(2)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(2)_thumb.jpg" width="315" height="43"></a> <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(3)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(3)" border="0" alt="Image(3)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(3)_thumb.jpg" width="221" height="138"></a> <p>     鍏朵腑錛屛鎬負涓や釜鍥涘厓鏁扮殑澶硅銆?<p>     涓轟簡鏂逛究灞曠ず錛屾垜浠冭檻鍦?D鎯呭喌瀵硅搴榪涜涓ゆ鎻掑鹼紝涓ょ綆楁硶鍦ㄦ彃鍊兼晥鏋滀笂瀛樺湪鐨勫樊寮傦紝濡備笅鍥撅紙b涓篖ERP銆乧涓篠LERP錛夛細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(4)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(4)" border="0" alt="Image(4)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(4)_thumb.jpg" width="640" height="128"></a> <p>     浠庡浘涓彲浠ョ湅鍑篖ERP鍏跺疄鏄涓ゅ洓鍏冩暟鍦ㄥ渾涓婄殑寮﹁繘琛屼簡絳夊垎錛岃孲LERP鍒欐槸瀵瑰渾寮ц繘琛岀瓑鍒嗐傜敱姝ゅ緱鍑虹殑緇撹鏄紝SLERP寰楀埌浜嗘瘮LERP鏇村鉤婊戠殑鎻掑肩粨鏋溿?<p>     涓轟簡淇濊瘉鎻掑兼洸綰跨殑C2榪炵畫鎬э紝闇瑕佷嬌鐢ㄧ悆闈㈠洓杈瑰艦鎻掑鹼紙Spherical Quadrangle interpolation錛夋柟娉曘備緥濡傦紝瀵筿1鍜宷2鎻掑鹼紝棣栧厛瑕佺敤q0銆乹1銆乹2銆乹3璁$畻鍑轟袱涓帶鍒剁偣錛圛nner Quadrangle Point錛夛紝鍏紡濡備笅錛?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(5)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(5)" border="0" alt="Image(5)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(5)_thumb.jpg" width="286" height="79"></a> <p>     鐒跺悗閫氳繃涓嬪紡寰楀埌鏈緇堟彃鍊肩粨鏋滐細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(6)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(6)" border="0" alt="Image(6)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(6)_thumb.jpg" width="760" height="41"></a> <p><font size="3"><strong>2.3 瀹炵幇</strong></font> <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(7)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(7)" border="0" alt="Image(7)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(7)_thumb.jpg" width="696" height="1022"></a> <p>     涓婇潰浠g爜娌℃湁鑰冭檻涓や釜鍥涘厓鏁頒箣闂村す瑙掑ぇ浜?80擄鐨勬儏鍐點備緥濡傦紝鑰冭檻q1->q2鐨勬彃鍊艱搴ξ?gt;180擄錛屾垜浠彲浠ヨq1->q2鍙嶅悜鏃嬭漿2蟺-胃錛屽嵆鏃嬭漿-(2蟺-胃)錛屾牴鎹洓鍏冩暟鐨勫畾涔塠v*sin(胃/2) , cos(胃/2)]錛岄偅涔堝q2榪涜澶勭悊鍙樹負[-v*sin(胃/2) , -cos(胃/2)]銆傝繖涓鐞嗗彲浠ユ斁鍦ˋddSplinePoint涓潵鍋氾細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(8)_2.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(8)" border="0" alt="Image(8)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/Real-time-Cutscene_7DED/Image(8)_thumb.jpg" width="527" height="234"></a> <p><font size="3"><strong>鍙傝冿細</strong></font> <p>[1] <a >Quaternions, Interpolation and Animation by EB Dam - 1998</a> <p>[2] <a >Game Engine Architecture by Jason Gregory - 2009</a> <p>[3] <a >https://theory.org/software/qfa/writeup/node12.html</a><img src ="http://www.shnenglu.com/heath/aggbug/203921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2013-10-26 09:07 <a href="http://www.shnenglu.com/heath/archive/2013/10/26/203921.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Windows騫沖彴涓嬮拡瀵笴/C++欏圭洰鐨勫唴瀛樻硠婕忔嫻嬫柟娉?/title><link>http://www.shnenglu.com/heath/archive/2013/10/26/203920.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sat, 26 Oct 2013 00:55:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2013/10/26/203920.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/203920.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2013/10/26/203920.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/203920.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/203920.html</trackback:ping><description><![CDATA[<p>     鐢變簬璇█鍦ㄨ嚜鍔ㄥ唴瀛樼鐞嗕笂鐨勬瑺緙猴紝C/C++鍦ㄥ唴瀛樼鐞嗕笂浠庢潵閮芥槸闇瑕佺▼搴忓憳灝忓績澶勭悊鐨勪竴涓柟闈紝褰撻」鐩唬鐮佷笂浜嗕竴瀹氳妯★紝鍐呭瓨娑堣楀拰娉勬紡灝變細鎴愪負紼嬪簭紼沖畾榪愯鐨勭涓澶ф晫銆傚鏋滀笉鍦ㄩ」鐩箣鍒濆氨寤虹珛鍐呭瓨綆$悊鍜屾硠婕忔嫻嬫満鍒訛紝鍚庨潰铔嬬柤鐨勯棶棰樺氨浼氭帴韙佃屾潵銆傝繖綃囨枃绔犵潃閲嶈璁哄唴瀛樻硠婕忔嫻嬶紝鑰屽唴瀛樼鐞嗕笌鍏蜂綋欏圭洰綾誨瀷鍏崇郴瀵嗗垏錛屽悗闈㈡湁鏃墮棿鎴戜細鐫閲嶆父鎴忛」鐩潵璁ㄨ銆?<p>     鍐呭瓨娉勬紡媯嫻嬬殑鍩烘湰姝ラ鏄細1錛夊寘瑁咃紙閲嶈澆錛夊唴瀛樺垎閰?閲婃斁API錛?錛夎繘琛屽唴瀛樺垎閰嶆椂璁頒笅鐩稿叧淇℃伅錛氬湴鍧銆佸ぇ灝忋佽皟鐢ㄦ爤錛?錛夐噴鏀炬椂娓呴櫎涔嬪墠璁板綍鐨勫搴斾俊鎭紱4錛夌▼搴忛鍑烘椂錛堢‘淇濆湪鎵鏈夊唴瀛橀噴鏀炬搷浣滃畬鎴愪箣鍚庯級錛岃緭鍑哄墿涓嬬殑璁板綍銆傚叾涓紝瀵硅繘琛屽垎閰嶆搷浣滄槸鐨勮皟鐢ㄦ爤鍥炴函鏄釜閲嶇偣淇℃伅錛屽畠鑳藉甯姪鎴戜滑鎵懼嚭鍐呭瓨娉勬紡浠g爜銆?<p>     Windows涓殑Dbghelp搴撴彁渚涗簡涓板瘜鐨勮皟璇旳PI銆係tackWalk搴旇鏄繘琛屾爤鍥炴函鏈鐩存帴鐨勪竴縐嶆帴鍙d簡錛屼絾鏄畠涓嶅蹇傚鏋滆兘鍏堣褰曚笅璋冪敤鏍堜笂鐨凜ALL鎸囦護鍦板潃錛岀劧鍚庡湪杈撳嚭鏃ュ織鏃惰В鏋愬嚭絎﹀彿錛屽皢浼氬ぇ澶ч檷浣庢嫻嬫満鍒跺紼嬪簭鏈韓鎬ц兘鐨勫獎鍝嶃侱bghelp搴撲腑鎻愪緵浜哠ym*FromAddr緋誨垪API錛屽彲浠ラ氳繃鎸囦護鍦板潃鑾峰彇鍑芥暟絎﹀彿錛岄偅涔堝墿涓嬬殑灝辨槸濡備綍璁板綍鎸囦護鍦板潃鐨勯棶棰樹簡銆備粠緗戜笂鍊熶簡涓寮爔86璋冪敤鏍堢ず鎰忓浘錛屽涓嬶細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(12)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(12)" border="0" alt="Image(12)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(12)_thumb.png" width="263" height="458"></a> <p>     浠庡浘涓彲浠ョ湅鍑猴紝Callee鐨凟BP濮嬬粓鎸囧悜Caller鐨凟BP錛孍BP涓嬮潰鏄寚鍚慍aller涓嬩竴鏉℃寚浠わ紙娉ㄦ剰x86浣撶郴涓嬫爤鐨勫闀挎柟鍚戞槸灝忓湴鍧錛夛紝鍥犳閫氳繃EBP灝卞彲浠ュ洖婧暣涓皟鐢ㄦ爤浜嗐傞氳繃涓嬮潰浠g爜鍙互瀹炵幇姝ゅ姛鑳斤細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(13)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(13)" border="0" alt="Image(13)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(13)_thumb.png" width="512" height="335"></a> <p>     瀹忓弬鏁癴rame鏄釜void*鎸囬拡鏁扮粍錛屾暟緇勭殑澶у皬鍙栧喅浜庢兂瑕佸洖婧殑鏍堟繁搴︺傚唴瀛樺垎閰嶅拰鍥炴敹鐨勫寘瑁呬唬鐮佸涓嬶細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(14)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(14)" border="0" alt="Image(14)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(14)_thumb.png" width="768" height="311"></a> <p>     鎴戜滑鐪嬪埌錛屽唴瀛樼鐞嗙郴緇熷唴閮ㄧ粓絀惰繕鏄浣跨敤璇█鎻愪緵鐨勫唴瀛樺垎閰?閲婃斁API錛屽彧瑕侀厤瀵瑰疄鐜頒簡鍒嗛厤涓庨噴鏀劇鐞嗭紝緋葷粺鍐呴儴鐨勬棤娉勬紡鏄緢瀹規槗淇濊瘉鐨勩傚湪榪欓噷鐫閲嶈瑙e師鐞嗭紝灝變笉閲嶈澆new/delete operator浜嗐傛渶鍚庣湅涓涓嬭皟鐢ㄦ爤鍑芥暟絎﹀彿鐨勫洖婧唬鐮侊細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(15)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(15)" border="0" alt="Image(15)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(15)_thumb.png" width="1236" height="868"></a> <p>     鎴戜滑鐢ㄤ笅闈唬鐮佸仛嫻嬭瘯鐢ㄤ緥錛?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(16)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(16)" border="0" alt="Image(16)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(16)_thumb.png" width="537" height="567"></a> <p>     娉勬紡媯嫻嬬粨鏋滐細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(17)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Image(17)" border="0" alt="Image(17)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/WindowsCC_7CB0/Image(17)_thumb.png" width="800" height="322"></a> <p>鍙傝冿細 <p>[1] <a >Using DbgHelp</a> <p>[2] <a >Intel x86 Function-call Conventions - Assembly View</a><img src ="http://www.shnenglu.com/heath/aggbug/203920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2013-10-26 08:55 <a href="http://www.shnenglu.com/heath/archive/2013/10/26/203920.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>3DS Max鍧愭爣緋諱笌D3D宸︽墜緋葷殑綆鍗曡漿鎹㈡柟娉?/title><link>http://www.shnenglu.com/heath/archive/2013/06/08/200890.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sat, 08 Jun 2013 14:31:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2013/06/08/200890.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/200890.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2013/06/08/200890.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/200890.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/200890.html</trackback:ping><description><![CDATA[     鎽樿:   <a href='http://www.shnenglu.com/heath/archive/2013/06/08/200890.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/heath/aggbug/200890.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2013-06-08 22:31 <a href="http://www.shnenglu.com/heath/archive/2013/06/08/200890.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瑙e喅A*瀵昏礬涓竟緙樿璧伴棶棰?/title><link>http://www.shnenglu.com/heath/archive/2013/05/04/199973.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sat, 04 May 2013 15:49:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2013/05/04/199973.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/199973.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2013/05/04/199973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/199973.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/199973.html</trackback:ping><description><![CDATA[<p>     鐢ㄧ鎾炰綋鏉ョ害鏉熶笘鐣岃寖鍥村凡緇忕敤寰楀緢騫挎硾浜嗭紝鐜╁涓庝笘鐣岃竟緙樼殑浜や簰闂涔熷鏄撶敤紕版挒闈㈢殑娉曠嚎鍜岀帺瀹舵湞鍚戞潵瑙e喅銆傜劧鑰屽浜庝竴涓熀浜嶢* PathFinding鐨勬父鎴忥紝璨屼技榪樻病鏈変漢鍘昏冭檻鍜岃В鍐寵繖涓棶棰樸傛渶鍒濊冭檻榪欎釜闂錛屾槸鍥犱負娓告垙涓姞鍏ヤ簡AWSD鐨勭Щ鍔ㄦ柟寮忥紝褰撶鍒伴樆鎸″氨闈欐涓嶅姩浜嗭紝鍔犱笂鏈夋椂闃繪尅鍒峰緱涓庡満鏅笉澶創鍚堬紝閫犳垚鐜╁鍦ㄧЩ鍔ㄤ笂鐨勪笉鐖藉揩銆傝冭檻涓嬪浘鐨勬儏鍐碉紝钃濊壊涓夎鏄鑹詫紝綰㈣壊綰挎緇欏嚭浜嗗墠榪涙柟鍚戝拰緇堢偣錛堟父鎴忎腑閰嶇疆涓鴻鑹叉湞鍚戜笂5m澶勶級銆?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/988bf6b67b08_14D26/Image(9)%5B6%5D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(9)[6]" border="0" alt="Image(9)[6]" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/988bf6b67b08_14D26/Image(9)%5B6%5D_thumb.png" width="503" height="290"></a> <p>     鎴戞兂浜嗕袱縐嶆柟妗堬紝鏈鍒濈殑鏂規鐏墊劅鏉ヨ嚜鍏夌嚎鍙嶅皠錛屽涓嬪浘鎵紺恒?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/988bf6b67b08_14D26/Image(10)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(10)" border="0" alt="Image(10)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/988bf6b67b08_14D26/Image(10)_thumb.png" width="516" height="282"></a> <p>     鍥犱負闃繪尅鏍煎瓙鏄醬瀵歸綈鐨勶紝閫氳繃娉曞悜閲弉鍙互寰楀埌b鐐圭殑鍙嶅皠鍚戦噺e'-o錛屽皢|e'-o|闄愬畾鍦ㄤ竴涓浐瀹氬鹼紝姝ゆ椂濡傛灉e'涓嶅湪闃繪尅閲岄潰錛屽氨灝嗗畠浣滀負鏂扮殑緇堢偣銆傝鏂規鐨勫疄楠岀粨鏋滀笉澶護浜烘弧鎰忥紝褰撹鑹茬闃繪尅杈冭繎鏃舵柇緇劅澶槑鏄撅紝鍥犱負|e' - b|鐨勯暱搴﹁緝鐭傚彟澶栧畠涓嶈兘澶勭悊e'鍦ㄩ樆鎸¢噷鐨勬儏鍐碉紝琚崱浣忎笉鍔ㄧ殑姒傜巼渚濈劧杈冨ぇ銆?<p>     絎簩縐嶆柟妗堟槸鏍規嵁縐誨姩瓚嬪悜鍦ㄤ竴涓醬鍚戞壘涓涓彲杈捐瘯鎺㈢偣錛岀劧鍚庣敤闄愬埗浜嗘悳绱㈢┖闂達紙鎼滅儲鑺傜偣鍦?0浠ュ唴錛夌殑A*綆楁硶鎵懼埌涓鏉″埌璇曟帰鐐圭殑璺緞錛屽涓嬪浘銆?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/988bf6b67b08_14D26/Image(11)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(11)" border="0" alt="Image(11)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/988bf6b67b08_14D26/Image(11)_thumb.png" width="506" height="285"></a> <p>     璁綿iff_x = 緇堢偣x - 璧風偣x錛宒iff_y = 緇堢偣y - 璧風偣y錛屽綋diff_x > diff_y錛岃瀹氫負瓚嬪悜x鏂瑰悜涓婄Щ鍔紝鍦ㄨ繖縐嶆儏鍐典笅鍦ㄧ粓鐐箉杞村悜涓娐?0涓牸瀛愬唴鍘繪壘鍒頒竴涓渶鎺ヨ繎緇堢偣鐨勬棤闃繪尅鐐癸紙縐板畠涓哄彲杈捐瘯鎺㈢偣錛夈傜敱浜庤瘯鎺㈢偣涓庣帺瀹跺綋鍓嶇偣鏋佹湁鍙兘鏄洿綰夸笉榪為氱殑錛岃屼笖瀹冧滑涓嶅彲鑳藉お榪滐紝鎵浠ヤ嬌鐢ㄤ簡涓涓皢鎼滅儲鑺傜偣涓暟闄愬埗鍦?0浠ュ唴A*鏉ュ緱鍒頒竴鏉¤礬寰勩傝鏂規澶ч儴鍒嗘儏鍐甸兘鑳藉湪杈圭紭鎵懼埌鍚堢悊鐐癸紝浣嗗鏋滅帺瀹跺瀭鐩撮潰鏈濋樆鎸″唴縐誨姩涓斾笉鑳藉湪闄愬埗鎼滅儲鑼冨洿鍐呮壘鍒板彲杈劇偣錛岃鑹插氨浼氬崱浣忎笉鍔紝榪欑鎯呭喌灝卞彧鑳借鐜╁鑷繁璋冩暣涓涓嬫湞鍚戜簡銆?<img src ="http://www.shnenglu.com/heath/aggbug/199973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2013-05-04 23:49 <a href="http://www.shnenglu.com/heath/archive/2013/05/04/199973.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>toLua++鐨勫鍑哄嚱鏁板浣曡闂甃ua Tablehttp://www.shnenglu.com/heath/archive/2013/02/12/197808.htmlHeathHeathTue, 12 Feb 2013 11:30:00 GMThttp://www.shnenglu.com/heath/archive/2013/02/12/197808.htmlhttp://www.shnenglu.com/heath/comments/197808.htmlhttp://www.shnenglu.com/heath/archive/2013/02/12/197808.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/197808.htmlhttp://www.shnenglu.com/heath/services/trackbacks/197808.html鏈変簺鍑芥暟闇瑕佸悜lua榪斿洖澶氫釜緇撴灉錛屽皢榪欎簺緇撴灉瀛樺湪table涓槸鐞嗘墍褰撶劧鐨勩傚洜涓簍oLua++宸茬粡鑷姩鐢熸垚浜嗗嚱鏁扮殑wrapper錛屾墍浠ユ病鍔炴硶鐩存帴灝嗘爤欏秚able榪斿洖緇橪ua銆傚ソ鍦╰oLua棰勭暀浜唋ua_Object榪欎釜綾誨瀷錛屽彲浠ヤ唬琛╨ua涓殑浠諱綍綾誨瀷錛屽叾瀹炲畠鍙槸int鐨則ypedef緗簡錛屼富瑕佹槸鍦╰oLua瑙f瀽紼嬪簭鏃朵綔涓烘爣璁頒駭鐢焧olua_tovalue璋冪敤銆傚湪C/C++鍑芥暟涓紝闇瑕佹鏌ヤ竴涓嬫爤欏舵槸鍚︿負table綾誨瀷錛岃繘琛宼able鍏冪礌鐨勬彃鍏ユ搷浣滐紝渚嬪瓙鍑芥暟濡備笅錛?pre class="code">void ActorMgr::GetPlayerEntityIDs( lua_Object lua_table ) { TEntityListIt tIt ; std::list <int> result; for(int i = 0; i < ACOTOR_BUCKET_LEN ; ++i) { for(tIt =mSceneEntities[i].mEntities.begin(); tIt != mSceneEntities[i].mEntities.end( ); ++tIt ) { TActorPtr tpActor = tIt->second->mpActor ; if(tpActor ->GetActorType() == LOCAL_PLAYER) { result.push_front(tpActor->GetEntityID()); } else if (tpActor-> GetActorType() == REMOTE_PLAYER ) { result.push_back(tpActor->GetEntityID()); } } } lua_State* L = LuaVM::GetInstPtr()->mLS ; assert(lua_istable (L , -1)); std::list <int>:: iterator iter = result. begin(); for(int i = 1; iter != result .end(); ++ iter , ++i ) { lua_pushinteger(L , *iter); lua_rawseti(L , -2 , i); } lua_pop(L , 1); }

闇瑕佹敞鎰忕殑鏄紝濡傛灉鏄涓弬鏁幫紝Lua鐨勫帇鏍堥『搴忔槸object pointer銆佸弬鏁頒粠宸﹀埌鍙籌紝鎵浠ユ爤欏跺厓绱犳槸鍑芥暟絳懼悕鏈鍙寵竟鐨勫弬鏁般?/p>

Heath 2013-02-12 19:30 鍙戣〃璇勮
]]>
Lua鍜孋鐨勯偅浜涗簨http://www.shnenglu.com/heath/archive/2013/02/12/197807.htmlHeathHeathTue, 12 Feb 2013 11:17:00 GMThttp://www.shnenglu.com/heath/archive/2013/02/12/197807.htmlhttp://www.shnenglu.com/heath/comments/197807.htmlhttp://www.shnenglu.com/heath/archive/2013/02/12/197807.html#Feedback1http://www.shnenglu.com/heath/comments/commentRss/197807.htmlhttp://www.shnenglu.com/heath/services/trackbacks/197807.html        Lua鍜孋鏄ぉ鐢熺殑濂藉熀鍙嬶紝璇█寮鍙戣呮彁渚涗簡涓緋誨垪API錛岃浠栦滑閫氳繃鏍堣繘琛屼氦嫻併傜敤Lua鍋氭父鎴忛昏緫寮鍙戞湁浜涙椂鏃ヤ簡錛屼笅闈富瑕侀拡瀵筁ua C API鐨勫簲鐢ㄨ繘琛屾葷粨銆?/p>

涓銆佹墿灞昄ua

        Lua鏍稿績寰堝皬錛屼富瑕佸寘鍚竴涓В閲婂櫒錛屽叾浠栧姛鑳藉彲浠ラ氳繃鍔ㄦ佸簱鐨勫艦寮忎綔涓烘彃浠舵潵鎵╁睍錛宨o銆乻tring銆乵ath銆乼able絳夊唴緗簱閮芥槸閫氳繃姝ゆ柟寮忔潵瀹炵幇錛屽彧鏄粬浠闆嗘垚鍒頒簡涓涓猯ua.dll涓艦浜嗐傚埗浣滀竴涓姩鎬佸簱褰㈠紡鐨刴odule錛岄渶瑕佸湪浠g爜涓氳繃luaL_Reg鏁扮粍鎸囧畾lua function鍒癱 function鐨勬槧灝勶紝鎺ョ潃瀹炵幇c function錛屾渶鍚庡湪luaopen_xxx(xxx涓簃odule name)娉ㄥ唽榪欎釜luaL_Reg銆傝繖閲岀粰鍑轟竴涓潪甯哥畝鍗曠殑渚嬪瓙錛屽畠浣跨敤VC++鍒涘緩涓涓狢onsole DLL錛?/p>

#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
#include <math.h>

int mysin (lua_State* L);

static const struct luaL_Reg mymathlib [] =
{
    { "sin" , mysin } ,
    { NULL , NULL }
};

static int mysin( lua_State* L )
{
    double d = luaL_checknumber( L , 1);
    lua_pushnumber(L , sin( d));
    return 1;
}

__declspec(dllexport) int luaopen_mymathlib(lua_State * L)
{
    luaL_register(L , "mymathlib" , mymathlib);
    return 1;
}

緙栬瘧鎴恉ll鍚庢斁鍒發ua瑙i噴鍣ㄧ洰褰曚笅銆侺ua test code錛?/p>

require "mymathlib"

local a = mymathlib.sin(0.5)
print(a)

浜屻佷綔涓鴻剼鏈郴緇?/strong>

        Lua搴旂敤鏈澶氱殑棰嗗煙褰撳睘娓告垙寮鍙戯紝WOW鐨刄I鍜屾彃浠惰瀹冨悕澹板ぇ鍣傚湪榪欑搴旂敤涓紝Lua浣滀負搴旂敤紼嬪簭鐨勪竴涓瓙緋葷粺錛岀敤浣滈厤緗垨鑰呬笟鍔″鐞嗐傚湪灝哃ua涓庡簲鐢ㄩ泦鎴愯搗鏉ユ椂錛屽繀欏葷敤鍒癓ua C API錛屾牴鎹叾瑙勮寖錛屼綘闇瑕佸啓涓緋誨垪鐨剆tatic鍑芥暟錛屼綔涓篖ua涓庡簲鐢ㄧ▼搴忕殑綺樺悎浠g爜銆傚鏋滆鍦↙ua浣跨敤C++瀵硅薄錛屽彲灝嗗叾浣滀負userdata錛屼負瀹冨垱寤轟竴涓猰etatable錛屽茍灝嗙矘鍚堝嚱鏁版斁鍏ュ叾涓紝鍏抽敭鏄璁_index鎸囧悜metatable鑷韓錛岃繖鏍峰綋Lua璁塊棶userdata鐨刦ield鏃訛紝__index浼氬紩瀵煎畠鍘繪悳绱etatable鑷韓錛屼粠鑰岃幏寰楁敞鍐岀殑綺樺悎鍑芥暟銆?/p>

        鏈夊緢澶氬紑婧愮殑綺樺悎浠g爜鐢熸垚鍣紝浠栦滑閮芥槸鍦╬recompile鏃跺仛浜嗕竴浜涘伐浣滐紝鍥犺屼笉鏄嬌鐢╩acro灝辨槸template錛岃繖涓ょ鏂規硶鐨勪唬琛ㄦ槸toLua++鍜宭uaBind銆備釜浜烘洿鍊懼悜浣跨敤toLua++錛屼竴鏂歸潰榪欑鏂瑰紡姣旇緝鐩寸櫧錛屽彟涓鏂歸潰鏈漢寮變簬浣跨敤template銆傚湪WGAME涓篃灝嗗師鏉ュ啓寰椾笉鏄緢濂界殑bind浠g爜鏇挎崲鎴愪簡toLua++錛岀洰鍓峌I鍜屽叧鍗¢昏緫閲嶅害浣跨敤浜哃ua錛屼駭鐢熺殑bind浠g爜浼氭湁鍑犱竾琛岋紝鐢變簬欏圭洰閲囩敤浜嬩歡椹卞姩鐨勬柟寮忥紝鍦╬rofile鏃剁湅鍒板娓告垙鏁翠綋鎬ц兘褰卞搷闈炲父灝忋俵uaBind澶ф浜嗚В榪囷紝娌℃湁鍦ㄥ疄闄呴」鐩腑鐢ㄨ繃錛屽湪姝ゅ氨涓嶅仛璇勮浜嗐?/p>

        鍦ㄤ嬌鐢╰oLua++鏃舵垜鏈濂藉鐨勬槸瀹冨C++鍏抽敭鐗規ф槸濡備綍鏀寔鐨勩傞櫎浜嗕笂闈㈣鐨勬垚鍛樺嚱鏁板錛屽浜庡鎬佺殑鏀寔錛屽畠鏄氳繃鍦╯tatic鍑芥暟鍚庡姞緙栧彿錛岃皟鐢ㄦ椂鍒ゆ柇鍙傛暟鏄惁瀵瑰簲鏉ラ亶鍘嗘壘鍒版紜畇tatic鍑芥暟鐨勶紱瀵逛簬澶嶆潅鎴愬憳鍙橀噺錛屽畠浼氳嚜鍔ㄧ敓鎴恎et/set鏂規硶錛涜岀戶鎵垮叧緋伙紝鍒欐槸閫氳繃瀛愮被灝嗙埗綾諱綔涓簃etatable鏉ュ疄鐜般傜鐫閲嶆柊鍙戞槑杞﹁疆鐨勭簿紲烇紝鎴戣瘯鐫鍐欎簡涓涓畝鍖栫殑鑷姩鐢熸垚鍣╗鎴戝湪github涓?/a>]銆傛垜瀹氫箟浜嗗嚑涓叧閿瓧浣滀負綾諱笌鏂規硶鐨勫鍑烘爣璇嗭細

    {module_begin = "LUACBIND_MODULE_BEGIN" , module_end = "LUACBIND_MODULE_END" , method_begin = "LUACBIND_METHOD_BEGIN" , method_end = "LUACBIND_METHOD_END"}

    util.h瀹氫箟浜嗕駭鐢焍ind浠g爜闇瑕佺殑瀹忥紝parser.lua瀵規寚瀹氱殑.h鏂囦歡榪涜鎵弿浜х敓bind浠g爜錛屽湪main鍑芥暟涓璻egister鍚庯紝灝卞彲浠ュ湪lua涓嬌鐢ㄤ簡銆?/p>

涓夈佽皟璇曞櫒

        Lua鐨凜 API鍜孌ebug搴撴彁渚涗簡瀹炵幇璋冭瘯鍣ㄧ殑蹇呰鏂規硶錛屽搴斾簡涓ょ瀹炵幇鏂瑰紡錛氫竴縐嶆槸Remdebug鎵閲囩敤鐨勶紝鐩存帴鐢╨ua瀹炵幇錛涘彟澶栦竴縐嶆槸浣跨敤C API銆備笉綆″摢縐嶆柟寮忥紝浣跨敤HOOK閮芥槸蹇呴』鐨勶紝浣嗕嬌鐢↙ua debug搴撲細姣擟 API鏇存柟渚匡紝鍥犱負涓嶇敤鑰冭檻鏍堝鉤琛¢棶棰樸傚湪鐢– API瀹炵幇璋冭瘯鍣ㄦ椂錛屽彲鐢╨ua_newthread鍒涘緩涓涓猚oroutine錛屼箣鍚巠ield/resume/getstack/getlocal閮戒綔鐢ㄥ畠涓婇潰錛宐reakpoint閫氬父浼氶噰鐢ㄥ湪hook涓瓂ield鐨勬柟寮忔潵瀹炵幇錛屼絾涓嶈兘絳塰ook榪斿洖涔嬪悗鍘昏繘琛屾爤鍥炴函錛屽洜涓簍raceexec鏍規嵁hook mask璋冪敤瀵瑰簲hook鍑芥暟鍚庯紝濡傛灉state鏄負LUA_YIELD鐘舵侊紝灝嗕細璋冪敤luaD_throw錛屾渶緇堜嬌鐢╨ongjmp瀵艱嚧鏃犳硶榪涜鍥炴函銆?/p>

        鍒╃敤鏄ヨ妭鍊肩彮涓ゅぉ娓呴棽鏃跺厜錛屽熀浜巐ua 5.2瀹炵幇浜嗕竴涓懡浠よ璋冭瘯鍣╗鎴戝湪github涓?/a>]錛岀洰鍓嶄粎鏈夊嚑涓畝鍗曠殑鍔熻兘錛氬姞杞?榪愯lua鑴氭湰銆佽緗?娓呴櫎鏂偣銆佸崟姝ャ佹煡鐪嬬畝鍗曠被鍨嬪彉閲忓鹼紝鍛戒護鏍煎紡鍙弬鑰僐EADME銆?/p>

Heath 2013-02-12 19:17 鍙戣〃璇勮
]]>
綆鍗曟兂浜嗕竴涓嬨婃場娉¢緳銆嬬殑瀹炵幇http://www.shnenglu.com/heath/archive/2012/11/27/195752.htmlHeathHeathTue, 27 Nov 2012 15:43:00 GMThttp://www.shnenglu.com/heath/archive/2012/11/27/195752.htmlhttp://www.shnenglu.com/heath/comments/195752.htmlhttp://www.shnenglu.com/heath/archive/2012/11/27/195752.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/195752.htmlhttp://www.shnenglu.com/heath/services/trackbacks/195752.html         棰嗗鏈榪戝湪鐜╂場娉¢緳錛屾垜涔熸兂涓嶉氫負浠涔堢獊鐒跺張瀵硅繖涔堝彜鑰佺殑娓告垙鎰熷叴瓚d簡銆傛槰鏅氬湪鍦伴搧涓婏紝濂歸棶鎴戣繖縐嶆父鎴忚兘鍋氬悧錛熸垜涓嶅姞鎬濊冨洖絳旈亾錛氬綋鐒訛紝瓚呯畝鍗曘備粖澶╀粠娣卞ぇ鍦伴搧绔欏嚭鏉ワ紝榪欎釜闂紿佺劧鍐掍簡鍑烘潵錛屽埌鍏徃鐨勮礬涓婅姳浜嗗嚑鍒嗛挓鎬濊冧簡涓嬪疄鐜扮粏鑺傘備粠鏈綆鍗曠殑鐜╂硶寮濮嬶細鐩稿悓棰滆壊鐨勬場娉′笁涓互涓婂彲浠ユ秷闄ゃ?

         鏍稿績鏁版嵁緇撴瀯鎴戦噰鐢ㄩ摼琛ㄦ暟緇勶紝灝嗙浉鍚岄鑹蹭笖閭繪帴鐨勬場娉′覆鎴愪竴涓摼琛ㄣ傞噰鐢ㄨ繖縐嶆暟鎹粨鏋勶紝鏄熀浜庝笅闈㈣冭檻錛?錛夐氳繃棰滆壊鍒掑垎緙╁皬鎼滅儲鍖哄煙錛?錛夋病鏈夋帓搴忥紝娌℃湁涓棿鎻掑叆鑺傜偣鐨勯渶姹傦紱3錛夎妭鐪佸唴瀛樸傚綋鐒訛紝娓告垙鐣岄潰涓殑娉℃場榪樻槸鎶婂畠瀵瑰簲鍒頒竴涓簩緇存暟緇勪腑錛屾瘡涓厓绱犲瓨鍌ㄤ竴涓場娉″璞$殑鎸囬拡錛岃瀵硅薄涓嚦灝戝寘鍚細棰滆壊銆佸潗鏍囷紝鍒嗗箋傚涓嬪浘鎵紺猴細

Image(8)

         鍓╀笅闇瑕佽冭檻鐨勬槸鍙戝皠娉℃場棰滆壊濡備綍浜х敓錛熷鏋滀粠絀哄叧鍗″紑濮嬶紝鍓嶉潰鍙互鐢ㄩ殢鏈猴紝鍚庨潰灝辮浣跨敤緇熻淇℃伅浜嗐傚湪姣忎釜閾捐〃澶村彲浠ョ粺璁¤鍫嗘場娉″紑闂с佹暟閲忕瓑錛屽埄鐢ㄨ繖浜涗俊鎭彲浠ュ喅瀹氬彂灝勬場娉$殑棰滆壊銆?

Heath 2012-11-27 23:43 鍙戣〃璇勮
]]>
Hacking絎旇&mdash;&mdash;HDDHACKR鑷埗320GB XBOX SLIM紜洏http://www.shnenglu.com/heath/archive/2012/11/27/195751.htmlHeathHeathTue, 27 Nov 2012 15:40:00 GMThttp://www.shnenglu.com/heath/archive/2012/11/27/195751.htmlhttp://www.shnenglu.com/heath/comments/195751.htmlhttp://www.shnenglu.com/heath/archive/2012/11/27/195751.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/195751.htmlhttp://www.shnenglu.com/heath/services/trackbacks/195751.html        涓?60瑁呬笂紜洏錛屾渶澶х殑濂藉灝辨槸鍑忓皯鍏夐┍鐨勪嬌鐢紝閬垮厤鍣煶銆侶DDHackr鍙互灝嗚タ閮ㄦ暟鎹壒瀹氬瀷鍙風殑紜洏(WD3200BPVT銆乄D3200BEVT)鍒峰啓鎴愬井杞?60鎵浣跨敤鐨勫笇鎹風‖鐩樸傛瘮璧蜂笉澶熷帤閬撶殑MS鍑虹殑瀹樻柟紜洏錛屾垜褰撶劧閫夋嫨HDDHackr鍟︺?

鍑嗗:

1錛塙SB DOS鍚姩鐩橈紱

2錛塇DDHackr 1.3鍜?60 320 GB鍥轟歡錛?

3錛変竴鍙版敮鎸丼ATA鎺ュ彛鐨勭數鑴戙傦紙鎴戞湁涓鍙癝ATAIII鎺ュ彛鐨凱C鍜屼竴鍙版敮鎸丼ATAII鐨凾hinkPad X200絎旇鏈級

        鍦≒C涓婅繍琛屽け璐ヤ簡,鍑虹幇涓嶈兘鍐欏叆鐨勯棶棰橈紝鍦╔200絎旇鏈笂鎴愬姛浜嗐傚湪姝よ繃紼嬩腑,鍙渶瑕侀夋嫨鍐欏叆鍥轟歡,紼嬪簭浼氬府浣犺嚜鍔ㄥ浠藉師鍥轟歡銆傞渶瑕佸Ε鍠勪繚綆″師鍥轟歡錛屼互渚垮悗闈㈤渶瑕佺敤鍋氭暟鎹‖鐩樼殑鏃跺欏彲浠ユ仮澶嶃?/p>

Heath 2012-11-27 23:40 鍙戣〃璇勮
]]>
Hacking絎旇&mdash;&mdash;涓篨BOX360 SLIM鍒峰厜椹?/title><link>http://www.shnenglu.com/heath/archive/2012/11/27/195750.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Tue, 27 Nov 2012 15:37:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2012/11/27/195750.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/195750.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2012/11/27/195750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/195750.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/195750.html</trackback:ping><description><![CDATA[<p>        鏈哄櫒2011騫?鏈堜喚璐簬棣欐腐錛屽墠鍚庝拱浜?寮犳鐗堢銆傛渶榪戝懆鏈彲浠ュ弻浼戜簡錛屾濂紹lack OpsII鍑轟簡錛屾兂鍒版満鍣ㄥ凡緇忚繃浜嗕繚淇湡錛屾墍浠ヤ粖澶╁姩鎵嬫妸鏈哄櫒鎷嗗紑鐪嬬湅鍏夐┍鐨凢W鐗堟湰錛岀湅鑳藉惁涓哄幓涔板嚑鍏冧竴寮犵殑紕熷瓙鐜┿傛牴鎹綉涓婄殑鎷嗘満鏁欑▼錛岄渶瑕佺牬鍧忎袱涓繚淇皝鏉°傛媶寮鍚庡彂鐜版槸0225錛孞ungleFlasher0.1.92(304)宸茬粡鍙互璇誨彇瀹冪殑DVD KEY浜嗐備絾鎴戠殑PC涓繪澘鑺墖緇勬槸INTEL P45錛屽崡妗ヨ姱鐗囦負ICH10R錛岃櫧鐒剁綉涓婂緢澶氳璇ヨ姱鐗囦笉鑳借瘑鍒緩鍏?225錛屼絾鎴戣繕鏄姳鐫璇曚竴璇曠殑蹇冩併傚洜涓烘満綆變笂鏈塭SATA鎺ュ彛錛屾墍浠ユ垜鎺ユ満綆卞唴閮⊿ATA綰挎帴鍦ㄤ簡SATA1浣嶇疆錛堝叾浠栦綅緗笉鑳借JF璇嗗埆錛岀幇璞″彲鑳戒粖澶╂槸SATA1鍙敤錛屾槑澶╁氨SATA6鍙敤浜嗭紝WIN7鍐呴儴鍋氫簡浠涔堟亹鎬曞彧鑳組S娓呮浜嗭級銆?<p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/XBOX360-SLIM_1475B/Image(7)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(7)" border="0" alt="Image(7)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/XBOX360-SLIM_1475B/Image(7)_thumb.png" width="504" height="377"></a> <p>        鐒跺悗榪涘叆BIOS錛屽皢SATA妯″紡浠嶢HCI鏀逛負Enhanced IDE錛堝湪鎴戠殑鐢佃剳涓婁篃涓嶈兘鐢–ompatible IDE錛屼笉鐒朵細鍑虹幇鍙互璇嗗埆涓嶈兘璇誨彇鐨勯棶棰橈級銆傝嚦浜嶺BOX浣曟椂鍚姩鐨勯棶棰橈紝鎴戠粰鍑虹殑緇撹鏄棤鎵璋擄紝濡傛灉XBOX鍚庡惎鍔紝鍒欓渶瑕佽繘璁懼綆$悊鍣ㄦ壂鐬勪竴涓嬫柊璁懼銆傚湪鏁翠釜鎿嶄綔榪囩▼涓紝铏界劧鍦ㄨ澶囩鐞嗗櫒涓湅涓嶅埌鍏夐┍錛屼絾鏄繘鍏F鐨凞VDKey 32欏電鏄彲浠ョ湅鍒扮殑錛堟敞鎰忛夋嫨I/O Port錛夈傚鏋滄槸絎竴嬈℃彁鍙栧厜椹辯殑KEY錛孌VD KEY涓欏逛細鏄劇ずnot found錛岃繖鏄甯哥殑錛屽洜涓虹▼搴忔壘涓嶅埌涓庡凡鐭EY鍖歸厤鐨勩傛渶鍚庣偣鍑籗limKey錛岃繃紼嬩腑涓嶈unlock銆?<p>        鎺ヤ笅鏉ュ氨鏄幓緗戜笂娣?504錛屽皢0225涓婃彁鍙栫殑KEY鍚堝叆鍏朵腑銆?<p>        琚獥浜嗭紝鎷垮埌鐨勮繕鏄?225錛屽煎緱搴嗗垢鐨勬槸鍏夐┍鏄?2騫?鏈堜喚鐨凪XIC鐗堬紝鍏蜂綋鐢ㄤ粈涔堟柟娉曠牬瑙g殑錛屾垜涔熼毦鐨勫幓鎷嗗紑緇嗙┒銆傞棶浜哃T鍒風殑鏄摢涓増鏈紝鍥炵瓟鏄?.0銆傚湪緗戜笂鍙堜拱浜嗕袱寮燣T3.0鍜屼竴寮犱笉鍒嗙増鏈殑錛堝簲璇ュ氨鏄綆浜嶢P2.5鐨勫惂錛夈傜粨鏋滄槸3.0鍙互瀹夎錛岃繍琛屾彁紺猴紓姝ゅ厜鐩樹笉鏀彺錛傦紝鍙﹀涓寮犱笉鍒?.0榪樻槸3.0鐨勫彲浠ヨ繍琛岋紝浜庢槸寮濮嬫鐤戝厜椹卞埛鐨勬槸2.0銆備負浜嗛獙璇佽嚜宸辯殑鎬鐤戯紝鍐沖畾鑷繁鍔ㄦ墜鍒稬T plus 3.0錛屽彟涓鏂歸潰涔熼獙璇佷竴涓嬬牬瑙f槸鍚﹀畬緹庯紙涓嶇敤鎷嗘澘鐒婄嚎灝卞彲浠ュ弽澶嶅埛錛夛紝緇撴灉灝嗗喅瀹氭槸鍚﹂鎺夊厜椹便?<p>        鍦╓in7涓嬭瘯浜哊嬈★紝SATA1,6閮借瘯浜嗭紝灝辨槸鍐欏叆涓嶄簡錛坰tatus 0x051錛夛紝浣嗘槸鍙互璇嗗埆鍜岃KEY銆傛病鍔炴硶錛屾敼鍙樼瓥鐣ワ細1)鍏堢敤JF鎷垮墠闈㈡彁鍙栫殑KEY鍜孡T+3.0鍚堟垚鍥轟歡錛?)鐢║鐩樺惎鍔紝鍒扮函DOS涓嬩嬌鐢╠osflash鏉ュ啓鍏ュ浐浠躲傝繖涓柟妗堝緢濂忔晥錛屾垚鍔熷啓鍏ュ浐浠訛紝鍒皐in7涓嬬敤JF鏌ョ湅鍏夐┍KEY鐨勭姸鎬佹槸verified銆傚惎鍔?60錛屼拱鐨凩T3.0紕熷瓙閮借兘鐜╀簡銆?<p>        緗戜笂鐨勮祫鏂欑箒鏉傝岄毦浠ヨ鯨鍒湡浼紝鎵浠ュ嚒浜嬮兘瑕佽嚜宸卞疄璺點傝ˉ鍏呬竴涓嬶細 <p>1錛塪ashboard鐗堟湰涓庡埛鍏夐┍鍥轟歡鏈夋病鏈夊叧緋伙紵娌℃湁銆傚厜椹辯殑鐢墊簮鎺ュ彛鎻愪緵涓夌鐢靛帇(3.3銆?.0銆?2錛夈佸嚭鑸辨帶鍒躲佹墭鐩樼姸鎬佸鍏朵綑閮芥槸鍦扮嚎錛屾墍浠ュ埛鏈烘椂鐨勬暟鎹氳鍙細閫氳繃SATA綰夸紶杈擄紝鍥犳360鏃犳硶騫查鍒鋒満榪囩▼銆傛垜鐢╱鐩樼綰夸粠13599鏇存柊鍒頒簡鏈鏂扮殑15574錛岃兘鐜┿岄粦鑹茶鍔?銆嶃併屾瀬鍝?7銆嶃併屽繊榫?銆嶃?<p>2錛夐獙璇佸厜鐩樻槸鍚︽槸LT3.0錛氱敤abgx鍔犺澆鍏夌洏淇℃伅錛屽鏋滃嚭鐜?strong>Topology data is currently verified</strong>灝辮鏄庢槸LT3.0錛堟敞鎰忓浜庤秴鍒葷殑紕燂紝鏅氬厜椹辨棤娉曡瘑鍒紝鎴栬呰鍙栧嚭閿欙級銆?<p>3錛塪osflash浣跨敤娉ㄦ剰浜嬮」錛氬皢SATA綰挎帴鍦ㄧ涓涓彛涓娿傝繘鍏os鍚庡厛鍒惎鍔?60錛岃繍琛宒osflash涓嬈★紝紜繚鎵鏈塻ata鎺ュ彛娌℃湁閿欒鎻愮ず銆傜劧鍚庢墽琛宒osflash錛屾甯告儏鍐典笅搴旇娌℃湁閿欒鎻愮ず錛屾渶鍚庨墂鐩存帴閫夊悎濂界殑鍥轟歡鍐欏叆銆?<img src ="http://www.shnenglu.com/heath/aggbug/195750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2012-11-27 23:37 <a href="http://www.shnenglu.com/heath/archive/2012/11/27/195750.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>閽堝CUDA鐨凣PU鏋舵瀯鐭ヨ瘑涓庢ц兘瀵規瘮http://www.shnenglu.com/heath/archive/2012/11/27/195748.htmlHeathHeathTue, 27 Nov 2012 15:13:00 GMThttp://www.shnenglu.com/heath/archive/2012/11/27/195748.htmlhttp://www.shnenglu.com/heath/comments/195748.htmlhttp://www.shnenglu.com/heath/archive/2012/11/27/195748.html#Feedback4http://www.shnenglu.com/heath/comments/commentRss/195748.htmlhttp://www.shnenglu.com/heath/services/trackbacks/195748.html     5騫村墠灝嗐奊PU Gems 2銆嬩腑鐨勨淥ctree Textures on the GPU鈥濈敤鍒頒簡璁烘枃鐨勫疄鏃剁汗鐞嗗垱浣滀竴鑺傦紝閭f椂鍊機UDA鎵嶅垰鍑虹敓錛孫penCL搴旇榪樺湪瑙勮寖闃舵錛屾墍浠ュ皢GPU鐢ㄤ簬鍔犻熷拰閫氱敤璁$畻鐨勬垚鐔熸柟娉曡繕鏄痗ompution by texturing銆傝嚦浜庡悓鏍風殑璁$畻閲忓湪CPU鍜孏PU涓婅窇錛屾ц兘鍒板簳鎻愬崌澶氬皯錛屼篃娌℃湁鍋氳繃瀵規瘮瀹為獙銆傚懆鏈炕浜嗕笅銆奀UDA by Example: An Introduction to General-Purpose GPU Programming銆嬶紝鍩烘湰鎺屾彙浜嗙敤CUDA緙栧啓GPU鎬濇兂鍜岃娉曪紝姣旇搗灝嗘暟鎹仛涓虹汗鐞嗐丼hader鍐欑畻娉曟潵錛岃繘姝ヤ簡涓嶅皯錛?錛夊紑鍙戜漢鍛樹笉闇瑕佺啛鎮夋覆鏌撶綰垮強鍥懼艦API錛?錛変笉鐢ㄨ姳鏃墮棿鍘繪惌寤篋X鎴栬匫penGL鐨勬鏋訛紱3錛塇ost涓嶥evice浠g爜娣風紪錛?錛変笉蹇呴噰鐢℉acking鎬濇兂澶勭悊鍖呰鎴愮汗鐞嗙殑鏁版嵁錛?錛夊彲鎸囧畾鍙備笌璁$畻鐨勭嚎紼嬫暟銆傛湁浜嗗姝ゆ柟渚跨殑緙栫▼鐜錛屽氨闅忔墜鏉ュ仛涓涓嬪姣斿惂錛岃繖涓緥瀛愭潵鑷奀UDA by Example銆嬬殑4.2.2鐢熸垚Julia闆嗐?

     嫻嬭瘯浠g爜闇瑕佸仛涓浜涜皟鏁達紝鎵嶈兘鏇村ソ鍦頒綋鐜板嚭GPU鐨勫鉤琛岃綆椾紭鍔匡紝榪欏叾涓壍娑夊埌鏀寔CUDA鐨凣PU鏋舵瀯鐭ヨ瘑錛屽湪榪欓噷鍋氫竴涓嬫⒊鐞嗐?

     鍦∟vidia鎺ㄥ嚭Fermi鏋舵瀯涔嬪墠錛屾敮鎸丆UDA鐨凬vidia鏄劇ず鑺墖閮芥槸鐢卞涓猄treaming Multiprocessor錛堢畝縐癝M錛夌粍鎴愶紝姣忎釜SM鍖呭惈浜嗗叓涓猄tream Processor錛堢畝縐癝P錛夛紝姣忓洓涓猄P緇勬垚涓涓粍錛屼篃灝辨槸璇碨M瀹為檯涓婂彲浠ョ湅鎴愬寘鍚袱緇?D鐨凷IMD澶勭悊鍣ㄣ傛澶栵紝姣忎釜SM榪樺寘鍚玆egister銆乻hare memory銆乼exture cache浠ュ強constant cache銆傚湪鎵ц CUDA 紼嬪簭鐨勬椂鍊欙紝姣忎釜SM瀵瑰簲涓涓?block錛岃屾瘡涓猄P灝辨槸瀵瑰簲涓涓?thread銆傝櫧鐒朵竴涓猄M鍙湁鍏釜SP錛屼絾鏄敱浜嶴P榪涜鍚勭榪愮畻閮芥湁寤惰繜錛屾洿涓嶇敤鎻愬唴瀛樺瓨鍙栫殑寤惰繜浜嗭紝鍥犳 CUDA 鍦ㄦ墽琛岀▼搴忕殑鏃跺欙紝瀹為檯鏄互 warp 涓哄崟浣嶃傜洰鍓嶇殑鏀寔CUDA鏄懼崱錛屼竴涓?warp 閲岄潰鏈?2涓?threads錛屽垎鎴愪袱緇?6 threads鐨刪alf-warp銆傜敱浜嶴P鐨勮繍綆楄嚦灝戞湁4涓椂閽熷懆鏈熺殑寤惰繜錛屽洜姝ゅ涓涓?D鐨凷P鏉ヨ錛屼竴嬈¤嚦灝戞墽琛?6涓?threads(鍗?half-warp)鎵嶈兘鏈夋晥瑕嗙洊鎺夊悇縐嶈繍綆楃殑寤惰繜[1]銆?

Image

鍥?1

     鍦℅eForce GTX 400緋誨垪涓婏紝Nvidia閲囩敤浜嗗叏鏂扮殑Fermi鏋舵瀯[2]錛屼箣鍚庣殑鏄懼崱鐨凜ompute Capability涔熶粠1.3璺冨崌鑷?.0銆係P鏀瑰悕涓篊UDA Core錛屾彁鍗囧埌浜?2涓?SM[3]銆傚浘2涓篎ermi鏍稿績婕斿彉錛屼粠GF104鍜岀敱鍏跺彂灞曡搗鏉ョ殑GF114銆丟F106銆丟F108鐨凜UDA Core閮戒笂鍗囧埌浜?8涓?SM錛屾敮鎸?.1鐨凜ompute Capability錛岃孏F100鍜孏F110渚濇棫鏄?2涓傛渶鏂板熀浜嶬epler鏋舵瀯鐨凣eForce GTX 680鏀寔3.0鐨凜ompute Capability錛孋UDA Core鏁伴噺杈懼埌浜?92涓?SM銆?

Image(1)

鍥?2

     鐢變簬嫻嬭瘯騫沖彴閲囩敤鐨勬槸GTX 560 Ti錛屾墍浠ラ渶瑕佸垎鏋愪竴涓嬪畠鐨勬灦鏋勩侴TX 560 Ti鐢?涓猄M緇勬垚錛屼笅鍥句腑錛屽乏杈規槸浠庣▼搴忚幏鍙栫殑璁懼灞炴э紝鍙寵竟涓哄崟涓猄M鍐呴儴緇撴瀯紺轟緥鍥俱傚彲浠ョ湅鍒幫紝GTX 560 Ti鐨勬瘡涓猄M閰嶅浜嗕袱涓猈arp璋冨害鍣紝鍥犳姣忎釜鍛ㄦ湡瀵逛袱涓寘鍚?2涓嚎紼嬬殑Warp榪涜鍒嗗彂銆傚彟澶栵紝瀵逛簬涓涓簩緇村浘鍍忥紝涓簁ernel鎸囧畾2D鐨刧rid鍜宐lock鍙嬌浠g爜鏇村姞鐩磋銆備負姝わ紝block閲囩敤錛?6,16錛夛紝鎬誨叡鍒嗛厤256涓紙64*4錛塼hreads鍦ㄤ竴涓猄M涓婃墽琛岋紝濡傛灉闇瑕佷駭鐢?024*1024鐨凧ulia鍒嗗艦鍥撅紝鍒欓渶瑕乬rid涓猴紙64,64錛夈?

Image(2) Image(3)

鍥?3

     嫻嬭瘯騫沖彴涓猴細

Image(4)

     嫻嬭瘯浠g爜璇存槑錛?/strong>

     1錛変唬鐮佸垎涓篊PU瀹炵幇鍜孋UDA瀹炵幇錛?

     2錛夊潎閲囩敤CPU璁℃椂鏂規硶錛?

     3錛夊彧閽堝璁$畻閮ㄥ垎嫻嬭瘯錛屼笉鍖呮嫭鍐呭瓨鍒嗛厤銆佷紶杈撲互鍙婃枃浠跺啓鍏ワ紱

     涓嬮潰鍒楀嚭main鍑芥暟浠g爜錛屽乏杈逛負CPU瀹炵幇錛屽彸杈逛負CUDA瀹炵幇錛屽潎緙栬瘧涓簉elease鐗堟湰銆?

Image(5)Image(6)

     嫻嬭瘯緇撹錛?/strong>CPU鐗堟湰鑰楁椂244ms錛孋UDA鐗堟湰鑰楁椂2.1087ms銆傝繖鍙槸100鍊嶇殑鏁堢巼鎻愬崌鍟娿備笉榪嘋PU鐗堟湰娌℃湁緇忚繃澶氭牳浼樺寲錛屾墍浠ヨ繖鏍瘋繖鏍峰姣斿疄鍦ㄤ笉鍏鉤錛屼絾榪欏嵈鍑告樉鍑篊UDA C灝嗗茍琛屾濇兂铻嶅叆璇█瑙勫垯鐨勪紭鍔褲?

out

     鍦ㄦ儕璁禛PU鐢ㄤ綔閫氱敤璁$畻鐨勬墽琛屾晥鐜囨椂錛屽埆蹇樹簡瀹冭繕鏄湁璇稿搴旂敤涓婄殑闂錛?

     1)鍒濆鍖栬楁椂錛岄渶瑕佸湪鏄懼瓨鍒嗛厤絀洪棿錛岀劧鍚庡皢鏁版嵁浠庡唴瀛榗opy鍒版樉瀛橈紱
     2)鏁版嵁閲忓彈GPU鏄懼瓨闄愬埗錛?br>     3)瀵規湰韜氨闇瑕丟PU鍙備笌榪愮畻鐨勭▼搴忥紝濡傦細3D娓告垙錛岄氱敤璁$畻浼氫簤澶篏PU璧勬簮錛屽鏋滃仛騫寵 錛?br>     4)璁$畻鏁版嵁涔嬮棿鐨勪笉鐩稿叧鎬ч檺鍒朵簡GPU閫氱敤璁$畻鐨勫簲鐢ㄨ寖鍥達紱

     5)CPU綆楁硶鍒伴傚悎GPU鏋舵瀯綆楁硶鐨勭Щ妞嶏紱

     鏈鍚庯紝GPU紜歡璁捐鏈韓灝卞凡緇忓喅瀹氫簡瀹冪殑寮洪」鏄瘑闆嗘暟鎹鐞嗭紙濡傦細縐戝璁$畻銆佸尰鐤楀浘鍍忓鐞嗭級錛屽湪閫昏緫澶勭悊鏂歸潰榪樻槸CPU鐨勫ぉ涓嬶紝鎵浠ュ畠浠槸浜掕ˉ鐨勶紝鍙細鏈夋暣鍚堣岄潪鏇夸唬鐨勮秼鍔褲?

[1] http://www2.kimicat.com/gpu%E7%9A%84%E7%A1%AC%E9%AB%94%E6%9E%B6%E6%A7%8B

[2] http://www.chip.cn/index.php?option=com_content&view=article&id=2857:geforce-gtx-400-gpu&catid=7:test-technology&Itemid=15

[3] http://www.geeks3d.com/20100606/gpu-computing-nvidia-cuda-compute-capability-comparative-table

[4] http://www.expreview.com/13590-2.html

[5] http://en.wikipedia.org/wiki/CUDA

Heath 2012-11-27 23:13 鍙戣〃璇勮
]]>
Pentax鐨勫皬鐪肩潧http://www.shnenglu.com/heath/archive/2012/09/23/191723.htmlHeathHeathSun, 23 Sep 2012 09:34:00 GMThttp://www.shnenglu.com/heath/archive/2012/09/23/191723.htmlhttp://www.shnenglu.com/heath/comments/191723.htmlhttp://www.shnenglu.com/heath/archive/2012/09/23/191723.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/191723.htmlhttp://www.shnenglu.com/heath/services/trackbacks/191723.html        鎽勫獎綆楁槸瀹炵幇Ray-Tracing Rendering鐨勫畬緹庢柟寮忎簡鍚э紝浠ュ揩闂ㄩ熷害銆佸厜鍦堝ぇ灝忋佹劅鍏夊害浣滀負鎺у埗鍙傛暟錛屾覆鏌撳嚭鎯寵琛ㄨ揪鐨勫厜褰辨晥鏋溿?/p>

        鏈夋椂鍊欙紝浣犱細紿佺劧瀵規煇浜嬪緢鎰熷叴瓚o紝浣嗙悊鎬ф濈淮浼氳浣犲喎闈欎竴涓嬶紝鐪嬫槸涓嶆槸涓鏃跺啿鍔ㄣ侼騫村墠錛屽鎽勫獎鐨勯渶姹備粎婊¤凍浜庢梾娓歌褰曪紝鎵浠ヤ竴鑸珼C灝辮凍澶熴備竴涓鏈堝墠錛屾兂瑕佹彁鍗囩収鐗囧搧璐ㄧ殑闇姹傜獊鐒朵覆浜嗗嚭鏉ワ紝璁╄繖縐嶆兂娉曞彂閰典簡鍑犲ぉ鍚庯紝鍙戠幇鍙兘鏄鍏ヤ竴鍙癉SLR鐨勬椂鍊欎簡銆傚湪Nikon D7000/Pentax K-5/Canon 60D涓夋嫨浜咾5錛屽氨鎴愬儚鏁堟灉D7000涓嶬5鏄悓涓妗f錛屽枩嬈5鐨勬墜鎰熷拰鍛抽亾錛屽皬宸ф槸涓緢閲嶈鐨勫洜绱狅紝榪欐牱鍚屾牱鍠滄鎽勫獎鐨凴ain涔熷彲浠ョ敤寰楀緢濂姐傚寰楃殑瀵圭劍緋葷粺鍜岄暅澶寸兢涓鍚戦兘琚獵N楗柗錛屼笉榪囦釜浜鴻涓篕5鐨勫鐒﹀湪鏃ュ父鎷嶆憚涓凡緇忓鐢紝闀滃ご灝戜絾鍏ㄣ傚浜庡垰浣跨敤DSLR涓嶄箙鐨勬垜鏉ヨ錛孌A 18-55mm F/3.5-5.6 AL铏界劧鍦ㄦ垚鍍忛攼搴︽柟闈㈠急浜嗙偣錛屼絾鏃ュ父鐨勯鏅漢鍍忚繕鏄凍澶熶簡銆侱A 55-300mm F/4-5.8 ED榪戠澶у厜鍦堟媿浜哄儚鐨勮櫄鍖栨晥鏋滃拰榪滅鎵撻笩鐨勮繙鎽勬晥鏋滈兘榪樻瘮杈冩弧鎰忥紝鐢變簬55-110鍏夊湀鍙互鎭掑畾鍦?錛?10-200鏈澶у厜鍦堟亽瀹氬湪4.5錛屾墍浠ヤ袱鑰呯粍鍚堣搗鏉ュ湪鎬т環姣斾笂瑕佹瘮DA 18-135mm F/3.5-5.6 ED楂樸傚嚖鍑?0mm F/1.7鎵嬪姩澶達紝鍦ㄦ垚鍍忔晥鏋滄柟闈㈢湡蹇冨寰楄搗315RMB錛屾湁鍏磋叮鐨勫悓瀛﹀彲浠ョ湅榪欓噷銆?/p>

        鎽勫獎鎶鏈殑鎻愰珮鏄釜婕暱鐨勮繃紼嬶紝瀵瑰垵綰ч樁孌甸渶瑕佹帉鎻$殑鐭ヨ瘑錛屾垜鎬葷粨濡備笅錛?/p>

        1錛夊櫒鏉愮殑鐔熸倝鍒扮簿閫氾細闃呰浣跨敤鎵嬪唽錛岀啛鐭ュ悇涓寜閽強閫夐」鐨勬剰涔夈?/p>

        2錛変繚璇佸鐒︾偣錛堟兂鎷嶆憚鐗╋級娓呮櫚銆?/p>

        3錛夌浉鏈虹殑鍩烘湰鍘熺悊錛氬揩闂ㄣ佸厜鍦堛佹劅鍏夊害瀵瑰獎鍍忕殑褰卞搷銆?/p>

        4錛夋瀯鍥撅細宸﹀彸瀵圭О銆佷笁絳夊垎銆佹洸綰褲佸瑙掔嚎銆乀/L鍨嬨佹槑鏆楀姣斺?/p>

        5錛夊厜綰挎劅鐭ワ細濡備綍鎵嶈兘鍋氬埌鍚堥傜殑鏇濆厜銆?/p>

        6錛夊埄鐢ㄥ鍒扮殑鏂扮煡璇嗭紝涓嶆柇緇冧範錛岃鐩告満鎴愪負浣犵殑鍙︿竴鍙溂鐫涖?/p>

        鍦ㄥ弬鑰冧功鏂歸潰錛岃櫧鐒跺弽鎰熲滃疂鍏糕濅箣嫻侊紝浣嗐婃暟鐮佸崟鍙嶆憚褰卞畬鍏ㄥ疂鍏搞嬭繕綆楁槸鏈笉閿欑殑鍏ラ棬涔︿簡錛屾兜鐩栦簡DSLR鐨勫熀紜鐭ヨ瘑錛屽姞涓婇厤鍥撅紙鍖呮嫭鎷嶆憚鍙傛暟錛夛紝鍙互鎻愬崌瀵瑰ソ鐓х墖鐨勮鐭ャ?/p>

        鍐欐鏂囩殑鍚屾椂錛屽揩闂ㄦ暟涔熻繎3k浜嗭紝閬傚皢涓浜涗範浣滐紙娌℃湁鍚庢湡錛夋暣鐞嗕簡鏀懼叆flickr涓婏紝ID灝辮悓涓鐐瑰惂銆?a target="_blank">Pentax鐨勫皬鐪肩潧銆忋?/p>

        褰煎緱媯殑銆婄悊瑙f洕鍏夈嬫槸鎴戝涔犵殑絎簩鏈功錛屽鎺屾彙嫻嬪厜鎶宸т粠鑰屾紜洕鍏夋湁寰堝ぇ甯姪錛岃窛紱繪墍鎯沖嵆鎵寰楃殑鐩爣鏈夎繎浜嗕竴姝ャ傛涔﹁繕娑夊強浜嗗揩闂ㄩ熷害銆佸厜鍦堝鎷嶆憚鏁堟灉浜х敓鐨勫獎鍝嶏紝搴旇鏄叆闂ㄨ呭繀璇葷殑涓鏈粡鍏鎬箣浣溿?/p>

        鍥藉簡鍘諱簡鍘﹂棬錛岀粡榪囦竴涓湀鐨勫噯澶囷紝鎷嶅嚭鐨勭墖杈冧箣鍓嶆湁寰堝ぇ榪涙錛屾劅瑙夌敓媧誨張澶氫簡浜涗箰瓚c?/p>

Heath 2012-09-23 17:34 鍙戣〃璇勮
]]>
浠嶤PU瓚呴涓浜涚‖浠剁煡璇?/title><link>http://www.shnenglu.com/heath/archive/2012/06/10/178365.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sun, 10 Jun 2012 15:16:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2012/06/10/178365.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/178365.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2012/06/10/178365.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/178365.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/178365.html</trackback:ping><description><![CDATA[<p><strong><font size="4">涓銆佸墠璦</font></strong> <p>     浠庡ぇ瀛﹀埌鐜板湪閰嶈繃涓ゅ彴PC錛岀涓鍙癈eleron鐨勬満鍣ㄤ粠澶т簩鐢ㄥ埌鐮旂┒鐢熸瘯涓氾紝涔嬪悗寮濮嬬敤絎旇鏈傜浜屽彴PC鏄?9騫村叆鎵嬬殑錛岄偅闃靛瓙鐜╄秴棰戯紝浣嗗績嫻皵韜侊紝鑳′貢灝濊瘯涓涓嬪氨嫻呭皾杈勬浜嗭紝榪炰竴浜涘熀鏈師鐞嗛兘娌℃湁寮勬竻妤氥傛渶榪戝垰鎼炲ソ鏂版埧瀹夐】涓嬫潵錛屾湁浜嗚嚜宸辯殑宸ヤ綔闂達紝鍦ㄩ噸鏂扮粍瑁匬C鍜岃緗瓸IOS鐨勬椂鍊欏張鎯寵秴棰戜簡錛屼絾榪欐鎴戞湡鏈涘仛鍒扮煡鍏舵墍浠ョ劧錛屾晠鍦ㄧ綉涓婃煡闃呬簡涓浜涜祫鏂欐伓琛ヤ簡涓涓嬬‖浠剁煡璇嗭紝鏉冨綋浣滃涔犵瑪璁般傜敱浜庣綉緇滀笂鍏充簬紜歡錛堢壒鍒槸鍐呭瓨閮ㄥ垎錛夌煡璇嗗緢鏉傦紝浠呬互鑷繁璁や負姣旇緝闈犺氨鐨勫唴瀹逛負渚濇嵁錛屽鏈変笉鍑嗙‘涔嬪錛屾榪庢寚姝c傜敱浜庝嬌鐢ㄧ殑鏄疘ntel CPU錛屾湰鏂囬檺浜嶪ntel鏋舵瀯錛屼笖涓嶉傜敤I緋誨垪鏋舵瀯銆? <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/500px-Motherboard_diagram.svg_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="500px-Motherboard_diagram.svg" border="0" alt="500px-Motherboard_diagram.svg" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/500px-Motherboard_diagram.svg_thumb.png" width="500" height="770" /></a> <p align="center">鎬葷嚎姒傝 <p><strong><font size="4">浜屻佹湳璇?/font></strong> <p><strong><br /></strong> <p><strong>涓繪澘鑺墖緇勶細</strong>鍖楁ˉ鑺墖鍜屽崡妗ヨ姱鐗囥? <p><strong>鍖楁ˉ錛圢orthbridge錛夛細</strong>PC涓繪澘鑺墖緇勫叾涓箣涓錛岃璁$敤鏉ュ鐞嗛珮閫熶俊鍙鳳紝涓嶤PU銆佸唴瀛樸丄GP/PCIE銆佸崡妗ヨ姱鐗囪繘琛岄氫俊銆? <p>鍗楁ˉ錛圫outhbridge錛夛細PC涓繪澘鑺墖緇勫叾涓箣涓錛岃璁$敤鏉ュ鐞嗕綆淇椾俊鍙鳳紝閫氳繃鍖楁ˉ鍜孋PU閫氫俊錛屼笌澶у鏁癐/O鎺у埗璁懼鎺ュ彛錛屽PCI鎺у埗鍣ㄣ丄TA鎺у埗鍣ㄣ乁SB鎺у埗鍣ㄣ佺綉緇滄帶鍒跺櫒銆侀煶鏁堟帶鍒跺櫒銆傚悇涓姱鐗囧巶鍟嗗鍗楁ˉ鑺墖鐨勫懡鍚嶆湁鎵涓嶅悓錛孖ntel灝嗗叾縐頒負ICH錛宯Vidia縐頒負MCP錛孉TI縐頒負IXP/SB銆? <p><strong>鍓嶇鎬葷嚎錛團SB, Front Side Bus錛夛細</strong>鎸嘋PU涓庡寳妗ヨ姱鐗囦箣闂寸殑鏁版嵁浼犺緭閫氶亾銆? <p><strong>閿佺浉鐜紙PLL, Phase-Locked Loop錛夛細</strong>涓涓棴鐜殑鍙嶉鎺у埗緋葷粺錛屽畠鍙互浣縋LL鐨勮緭鍑哄彲浠ヤ笌涓涓弬鑰冧俊鍙蜂繚鎸佸浐瀹氱殑鐩鎬綅鍏崇郴銆? <p><strong>鏃墮挓棰戠巼錛?/strong>紜垏鐐規槸鏅舵尟棰戠巼錛屼笌閿佺浉鐜數璺厤鍚堜嬌鐢ㄤ負PC鎻愪緵瀹氭椂淇″彿錛岄氳繃鍊嶉/鍒嗛浜х敓涓嶅悓棰戠巼鐨勫熀鍑嗕俊鍙鳳紝鐢ㄤ互鍚屾緋葷粺鐨勬瘡涓姝ユ搷浣溿傚浜嶤PU涓婚錛屽畠鏄敱鏅舵尟鎻愪緵鐨勯鐜囬氳繃CPU鍐呴儴鐨凱LL鐢佃礬鍊嶉鑰屾潵銆? <p><strong>CPU澶栭錛?/strong>緋葷粺鎬葷嚎鐨勫伐浣滈鐜囷紝浣撶幇浜咰PU涓庤姱鐗囩粍涔嬮棿鐨勬葷嚎閫熷害銆? <p><strong>鍓嶇鎬葷嚎棰戠巼錛?/strong>CPU涓庡寳妗ヨ姱鐗囦箣闂寸殑鎬葷嚎宸ヤ綔棰戠巼銆備箣鎵浠ュ皢CPU澶栭涓庡墠绔葷嚎棰戠巼鍖哄垎寮鏉ワ紝鏄洜涓篒ntel鍦≒entium 4涓姞鍏ヤ簡Quad Pumped Bus鏋舵瀯錛屼嬌寰楃郴緇熸葷嚎鍦ㄤ竴涓椂閽熷懆鏈熷唴浼犺緭4嬈℃暟鎹紝涔熷氨鐩稿綋浜庡伐浣滈鐜囦負CPU澶栭鐨?鍊嶃? <p><strong>CPU鍊嶉錛?/strong>涓哄嶉緋繪暟鐨勭畝縐幫紝鏄寚CPU涓婚涓嶤PU澶栭涔嬮棿鐨勭浉瀵規瘮渚嬪叧緋匯傚湪PC鍙戝睍鍒濇湡錛岀敱浜嶤PU閫熷害涓嶉珮錛屽ぇ閮ㄥ垎鍏冧歡鏃墮挓鍧囦繚鎸佸悓姝ワ紝鐩村埌80486鏃朵唬錛屽湪CPU鍒剁▼鎸佺畫榪涙涓嬶紝CPU鐨勯熷害涔熷姞閫熷闀匡紝褰撴椂鐢變簬鍏朵粬澶栭儴鍏冧歡鍙楃數姘旂粨鏋勬墍闄愶紝鏃犳硶璺熻繘鎴愰暱錛屽洜姝ntel棣栨鍦–PU涓姞鍏ヤ簡鍊嶉璁捐銆傚畠鐨勪綔鐢ㄦ槸浣跨郴緇熸葷嚎宸ヤ綔鍦ㄧ浉瀵硅緝浣庣殑棰戠巼涓婏紝鑰孋PU閫熷害鍙互閫氳繃鍊嶉鏉ユ彁鍗囥? <p><strong>鍙屽嶆暟鎹熺巼錛圖DR, Double Data Rate錛夛細</strong>浣縎DRAM鍦ㄤ竴涓椂閽熷懆鏈熷唴榪涜涓ゆ鏁版嵁浼犺緭鐨勬妧鏈紝鍏蜂綋鍦拌瀹冨湪淇″彿鐨勪笂鍗囨部鍜屼笅闄嶆部浼犺緭鏁版嵁涓嬈★紝鏁版嵁浼犺緭鐜囨槸涔嬪墠浠呭埄鐢ㄤ笂鍗囨部榪涜鏁版嵁浼犺緭鐨凷DRAM鐨勪袱鍊嶃? <p><strong>鍐呭瓨棰戠巼錛?/strong>鍒嗕負鏍稿績棰戠巼(Internal rate)鍜孖/O鎬葷嚎棰戠巼(Bus clock)銆傛瘡鏉″唴瀛橀兘鏄敱鍐呭瓨鑺墖緇勬垚錛屽唴瀛樿姱鐗囩殑棰戠巼灝辨槸鏍稿績棰戠巼銆侷/O鎬葷嚎棰戠巼鏄寚鍖楁ˉ涓庡唴瀛樹箣闂寸殑鎬葷嚎棰戠巼銆傞氬父鍐呭瓨鏉℃爣縐扮殑瀹為檯涓婃槸鏈澶ф暟鎹紶杈撻鐜囷細I/O鎬葷嚎棰戠巼X2銆傚叾瀹烇紝浠嶥DR鍒癉DR3錛屽叾鍐呭瓨棰楃矑鐨勯鐜囨病鏈夋庝箞鎻愬崌錛屾彁鍗囩殑鏄葷嚎棰戠巼銆侸EDEC鍒跺畾鐨凞DR涓変唬鍙傛暟瀵圭収濡備笅琛ㄦ墍紺猴細 <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/Image(11)_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Image(11)" border="0" alt="Image(11)" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/Image(11)_thumb.png" width="644" height="140" /></a> <p><strong>鍙岄氶亾錛?/strong>灝辨槸鍦ㄥ寳妗ヨ姱鐗囬噷璁捐涓や釜鍐呭瓨鎺у埗鍣紝榪欎袱涓唴瀛樻帶鍒跺櫒鍙浉浜掔嫭绔嬪伐浣滐紝姣忎釜鎺у埗鍣ㄦ帶鍒朵竴涓唴瀛橀氶亾銆傚湪榪欎袱涓唴瀛橀氶亾涓奀PU鍙垎鍒鍧銆佽鍙栨暟鎹紝浠庤屼嬌鍐呭瓨鐨勫甫瀹藉鍔犱竴鍊嶏紝鏁版嵁瀛樺彇閫熷害涔熺浉搴斿鍔犱竴鍊嶏紙鐞嗚涓婏級銆傛祦琛岀殑鍙岄氶亾鍐呭瓨鏋勬灦鏄敱涓や釜64bit DDR鍐呭瓨鎺у埗鍣ㄦ瀯絳戣屾垚鐨勶紝鍏跺甫瀹藉彲杈?28bit銆傚洜涓哄弻閫氶亾浣撶郴鐨勪袱涓唴瀛樻帶鍒跺櫒鏄嫭绔嬬殑銆佸叿澶囦簰琛ユх殑鏅鴻兘鍐呭瓨鎺у埗鍣紝鍥犳浜岃呰兘瀹炵幇褰兼闂撮浂絳夊緟鏃墮棿錛屽悓鏃惰繍浣溿備袱涓唴瀛樻帶鍒跺櫒鐨勮繖縐嶄簰琛?#8220;澶╂?#8221;鍙鏈夋晥絳夊緟鏃墮棿緙╁噺50%錛屼粠鑰屼嬌鍐呭瓨鐨勫甫瀹界炕鍊嶃傚弻閫氶亾鍐呭瓨鎶鏈槸瑙e喅CPU鎬葷嚎甯﹀涓庡唴瀛樺甫瀹界殑鐭涚浘鐨勪綆浠楓侀珮鎬ц兘鐨勬柟妗堛? <p>  <p><strong><font size="4">涓夈佸師鐞?/font></strong> <p align="center"><em><font size="4">CPU涓婚=澶栭×鍊嶉</font></em></p><em> <p><br /></p></em> <p>     浠庡叕寮忓彲浠ョ湅鍑猴紝瑕佹彁鍗嘋PU涓婚鍙互浠庢彁楂樺棰戝拰鍊嶉涓ゆ柟闈㈢潃鎵嬨傜劧鑰屽湪瀹為檯鎿嶄綔榪囩▼涓紝涓よ呴兘浼氬彈CPU鏈韓鍙婂閮ㄧ‖浠訛紙涓昏鏄富鏉匡級浣撹川鐨勯檺鍒訛紝濡傦細閿佸嶉銆佷富鏉縁SB Frequency涓婇檺銆? <p>1錛夋彁楂樺棰? <p>     鍥犱負CPU澶栭鐨勮緗洿鎺ュ獎鍝嶇郴緇熸葷嚎宸ヤ綔棰戠巼錛屾墍浠ラ氳繃鎻愬崌澶栭鍜屾惌閰嶅悎閫傜殑鍐呭瓨錛屽彲浠ュ湪涓繪澘鏀寔鐨勫墠绔葷嚎棰戠巼涓婇檺鍐呮湁鏁堟彁鍗囩郴緇熺殑鏁翠綋鎬ц兘銆備箣鎵浠ヨ鎼厤鍚堥傜殑鍐呭瓨錛屾槸鍥犱負鍓嶇鎬葷嚎棰戠巼鎻愰珮錛屾渶澶х殑鍙楀獎鍝嶈呭氨鏄唴瀛橈紝鎵浠ュ唴瀛樿兘澶熸敮鎸佺殑鏈楂樺伐浣滈鐜囦篃闇瑕佽冭檻銆傝櫧鐒禛PU鏁版嵁涔熻閫氳繃鍓嶇鎬葷嚎鐢盋PU緇忚繃鍖楁ˉ鍒拌揪鏄懼崱錛屼絾鏄湪浠呴拡瀵笴PU瓚呴鐨勬儏鍐典笅錛屼竴鑸細灝咰PU涓庢樉鍗′箣闂撮氫俊鐨勯鐜囬攣瀹氬湪100MHz銆備婦涓緥瀛愶細鏈変竴鍧楀墠绔葷嚎涓婇檺棰戠巼涓?600MHz鐨勪富鏉匡紝鍋囧鎼厤涓鍧椾笂闄愪負1600MT/s鐨凞DRIII鍐呭瓨錛?:2鍒嗛姣旂殑鍓嶆彁涓嬶紝闇瑕佸皢CPU鐨勫棰戞彁鍗囧埌鎺ヨ繎400MHz錛屾暣涓郴緇熸墠浼氭瘮杈冨鉤琛°? <p>2錛夋彁楂樺嶉 <p>     閫氳繃鍊嶉鐨勫畾涔夛紝鍙互鐪嬪嚭錛屽湪澶栭涓瀹氱殑鎯呭喌涓嬶紝鎻愰珮鍊嶉錛屽彧鑳藉崟綰湴鎻愰珮CPU宸ヤ綔棰戠巼銆傝櫧鐒訛紝CPU鐨勮綆楄兘鍔涢櫎浜嗚窡宸ヤ綔棰戠巼鏈夊叧澶栵紝榪樹笌紜歡鏋舵瀯鍜屾寚浠ら泦鏈夊叧錛屾垚鍊嶆彁楂樺伐浣滈鐜囪偗瀹氫笉絳変簬鎴愬嶆彁楂樹簡璁$畻鑳藉姏錛屼絾鍙互鑲畾鐨勬槸棰戠巼鎻愰珮鑲畾浼氬湪涓瀹氱▼搴︿笂鎻愰珮璁$畻鑳藉姏銆? <p><strong><font size="4">鍥涖佸疄浣?/font></strong> <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/CaptureMB.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="CaptureMB" border="0" alt="CaptureMB" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/CaptureMB_thumb.png" width="573" height="118" /></a> <p>      <p>    浜旂數瀹圭増E5200鍏鋒湁寰堝己鐨勮秴棰戠┖闂達紝鍦ㄥ嶉瀹氬湪X8鐨勬儏鍐典笅錛?.2V渚垮彲浠ヨ交鏉句笂370MHz銆備富鏉垮湪涓嶈秴棰戞儏鍐典笅FSB灝卞凡緇忔敮鎸?600MHz浜嗭紝Corsair鍦ㄤ嬌鐢╔MP鏃舵敮鎸?600錛屽湪鏁翠綋鑰冮噺錛堟暎鐑丆PU瀵垮懡錛夊悗鍐沖畾灝咰PU澶栭瀹氬湪350MHz銆佸嶉璁句負x10錛岃繖鏍稦SB鍙伐浣滃湪1400MHz錛屽唴瀛樻寜鐓?1:2鍒嗛姣擨/O鎬葷嚎宸ヤ綔鍦?00MHz涓嬶紙鏁版嵁浼犺緭棰戠巼涓?400MT/s錛夈侭IOS璁劇疆濡備笅錛? <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/IMG_0602.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="IMG_0602" border="0" alt="IMG_0602" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/IMG_0602_thumb.jpg" width="640" height="478" /></a> <p>鍐呭瓨CL銆乼RCD絳夊艱鍏惰嚜鍔ㄨ鍙朣PD閰嶇疆銆? <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/IMG_0604.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="IMG_0604" border="0" alt="IMG_0604" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/IMG_0604_thumb.jpg" width="640" height="478" /></a> <p align="center"><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/Capture.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Capture" border="0" alt="Capture" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/Capture_thumb.png" width="496" height="480" /></a><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/CaptureMem.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="CaptureMem" border="0" alt="CaptureMem" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/18e4652fc073_1450A/CaptureMem_thumb.png" width="499" height="480" /></a></p><strong> <p><br /></p></strong> <p><strong>鍙傝冿細</strong> <p><strong><br /></strong> <p>[1] 鍓嶇鎬葷嚎 <a >http://zh.wikipedia.org/wiki/%E5%89%8D%E7%AB%AF%E6%80%BB%E7%BA%BF</a> <p>[2] 鏅舵尟鍙婂叾閫夌敤鎸囧崡 <a >http://www.naiteli.com.cn/Info/Detail_50139_7547.html</a> <p>[3] 鍊嶉 <a >http://baike.baidu.com/view/25647.htm</a> <p>[4] DDR SDRAM <a >http://en.wikipedia.org/wiki/DDR_SDRAM</a> <p>[5] DDR2 SDRAM <a >http://en.wikipedia.org/wiki/DDR2_SDRAM</a> <p>[6] DDR3 SDRAM <a >http://en.wikipedia.org/wiki/DDR3_SDRAM</a> <p>[7] 浜旂數瀹笶5200 <a >http://tech.163.com/digi/09/0316/08/54H0RJNT001618J7.html</a> </p><img src ="http://www.shnenglu.com/heath/aggbug/178365.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2012-06-10 23:16 <a href="http://www.shnenglu.com/heath/archive/2012/06/10/178365.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Window璋冭瘯涓殑絎﹀彿鏂囦歡涓庢簮浠g爜綆$悊http://www.shnenglu.com/heath/archive/2012/03/26/169068.htmlHeathHeathMon, 26 Mar 2012 15:10:00 GMThttp://www.shnenglu.com/heath/archive/2012/03/26/169068.htmlhttp://www.shnenglu.com/heath/comments/169068.htmlhttp://www.shnenglu.com/heath/archive/2012/03/26/169068.html#Feedback2http://www.shnenglu.com/heath/comments/commentRss/169068.htmlhttp://www.shnenglu.com/heath/services/trackbacks/169068.html    娓告垙寮濮嬭繘琛岀浜屾灝侀棴嫻嬭瘯錛岃繖嬈″弬涓庝漢鏁拌緝澶氾紝闅忎箣鑰屾潵鐨勪究鏄棤鏁扮殑宕╂簝dump銆傝櫧鐒跺湪鑷姩鏋勫緩嫻佺▼涓凡緇忓PDB鍜孍XE鎸夌増鏈彿榪涜浜嗕繚瀛橈紝浣嗙敱浜庢瀯寤烘搷浣滀漢鍛樻墜鍔ㄤ慨鏀規瀯寤哄彿錛屽嚭鐜板涓増鏈搴旂浉鍚岀増鏈彿鐨勯棶棰橈紝浠ュ強BUG鍗曞~鍐欎漢浠ュ熀綰跨増鏈彿鑰岄潪鐪熷疄鐗堟湰鍙鋒彁浜ょ殑鎯呭喌錛岀粡甯告氮璐瑰紑鍙戜漢鍛樼殑鏃墮棿鍜岀簿鍔涘幓鎵懼搴旂殑PDB錛岄檷浣庝簡宕╂簝瑙e喅鐨勫搷搴旈熷害銆傛墍浠ラ潪甯告湁蹇呰寤虹珛涓濂楄嚜鍔ㄥ寲鏂規錛屽緱鍒癲ump鏂囦歡鍚庡惎鍔╓inDbg榪涜鍒嗘瀽鏃惰兘澶熻嚜鍔ㄨ幏鍙栧搴旂殑PDB鍜屾簮浠g爜錛學inDbg灝辨彁渚涗簡榪欐牱涓濂楁柟渚垮疄鐢ㄧ殑宸ュ叿銆?/p>

1. 寤虹珛婧愪唬鐮佺儲寮?/font>

     WinDbg鎻愪緵浜嗕竴濂楃敤浜庣鐞唒db瀵瑰簲鐨勬簮浠g爜鐨勫伐鍏鳳紝浣嶄簬鍏跺畨瑁呯洰褰曠殑srcsrv涓嬶紝瀵筕SS銆丼VN銆丆VS銆丳erforce鎻愪緵浜嗘敮鎸侊紝鍒嗗埆瀵瑰簲vssindex.cmd銆乻vnindex.cmd銆乧vsindex.cmd銆乸4index.cmd榪欏洓涓猵erl鑴氭湰銆傚叾瀹烇紝ssindex.cmd鎵嶆槸鍏蜂綋瀹炵幇錛屽畠鏍規嵁浼犲叆鐨勭増鏈帶鍒剁郴緇熸爣璇嗭紝璋冪敤瀵瑰簲鐨刾erl module銆?

     svnindex.cmd閫氳繃/source鍜?symbols鍙傛暟鏉ユ寚瀹氭簮浠g爜鐩綍鍜孭DB鐩綍錛?debug鍙緭鍑哄鐞嗙殑璇︾粏淇℃伅錛?user鍜?pass鎻愪緵svn璐︽埛鍜屽瘑鐮併侾DB鏂囦歡涓湁涓鑺備笓闂ㄧ敤浜庡瓨鏀炬簮浠g爜鏂囦歡鍒楄〃鍙婂鐞嗗懡浠わ紝鍙氳繃pdbstr -r -p:PdbFileName -s:srcsrv鏌ョ湅銆?

 

     svnindex.cmd /debug /source="E:\CodeBase_SVN\Client\trunk\tools\CutSceneEditor" /symbols="E:\CodeBase_SVN\Client\trunk\bin\Release\CutSceneEditor" /user="user" /pass="pwd"

 

     鍦ㄦ墽琛屼笂闈㈠懡浠ゅ墠錛岀‘淇漃erl鍜孲ubversion宸茬粡琚畨瑁呬笖璁劇疆浜哖ATH鐜鍙橀噺銆傝鍛戒護灝嗘彁鍙杝ource code鐨勬湇鍔″櫒璺緞鍜屽綋鍓峈evision錛岀劧鍚庡啓鍏DB銆備笅闈㈡槸閫氳繃pdbstr鑾峰彇鐨勪俊鎭細

     Image(9)

     涓婇潰杈撳嚭鏄粡榪囨牸寮忓寲鐨勶紝鍘熷淇℃伅鍙互閫氳繃srctool -n鏌ョ湅錛?

     Image(10)

     鍙互鐪嬪嚭錛屽師濮嬩唬鐮佽礬寰勫悗闈㈣窡浜嗕竴鏉vn cat鎸囦護錛岀敱浜庢病鏈夋寚瀹歴ourcepath錛屾墍浠?targ%緙虹渷涓哄綋鍓嶈礬寰勶紙"C:\Program Files\Debugging Tools for Windows (x64)\srcsrv"錛夈?nbsp;

2. 鍒涘緩絎﹀彿鏈嶅姟鍣?/font>

    鎵璋撶鍙鋒湇鍔″櫒錛屾渶綆鍗曠殑褰㈠紡灝辨槸鏂囦歡鍏變韓鏈嶅姟鍣ㄣ傛垜浠嬌鐢?a target="_blank">symstore鍛戒護錛屽皢1涓駭鐢熺殑pdb娣誨姞鍒頒竴涓枃浠跺叡浜湇鍔″櫒涓婏紝濡傦細

 

     symstore.exe add /f "E:\CodeBase_SVN\Client\trunk\bin\Release\CutSceneEditor\*.pdb" /s "\\server.com\pub\Symbols" /t "CutSceneEditor" /v "Build 4171" /c "fix memory leak"

 

     璇ュ懡浠や細鏍規嵁PDB鐨剆ignature鍜宎ge浜х敓涓涓狦UID錛屽茍灝哖DB鏀劇疆浜庝互鏀笹UID涓哄悕瀛楃殑鐩綍涓嬶細

     Image8

    褰揹ebug鏃訛紝灝哢NC璺緞娣誨姞鍒癬NT_SYMBOL_PATH涓紙濡傦細_NT_SYMBOL_PATH=CACHE*F:\Symbols;SRV*http://msdl.microsoft.com/download/symbols;SRV*\\server.com\pub\Symbols錛夛紝璋冭瘯鍣ㄤ細鑷姩鍒版寚瀹氱殑絎﹀彿鏈嶅姟鍣ㄤ笂鍘繪悳绱㈠搴旂殑pdb鏂囦歡銆?

     symstore澶уぇ綆鍖栦簡絎﹀彿鐨勭増鏈鐞嗛棶棰橈紝鍏充簬瀹冪殑璇︾粏浠嬬粛鍙弬鑰?a target="_blank">symstore浠嬬粛銆?

     鍊煎緱娉ㄦ剰鐨勬槸錛宻ymstore娌℃湁閿佹満鍒訛紝騫朵笉鏀寔澶氫漢鍚屾椂鎿嶄綔銆傚疄闄呮儏鍐典腑錛屼篃鍙湁鑷姩鏋勫緩鏃舵墠浼氬仛姝ゆ搷浣溿?

3. 浣跨敤WinDbg鍒嗘瀽Dump鏂囦歡

      鎴戜滑鍦ㄤ唬鐮佷腑鍔犲叆鍙戠敓寮傚父鍐橫iniDump鐨勫姛鑳斤紝鍦ㄧ▼搴忓穿婧冩椂浜х敓dump鏂囦歡銆傚湪浣跨敤WinDbg鍒嗘瀽dump鏂囦歡鏃訛紝闇瑕佽緗甋ymbol File Path鍜孲ource File Path錛屼篃鍙互鐩存帴璁劇疆鐜鍙橀噺_NT_SYMBOL_PATH鍜宊NT_SOURCE_PATH銆傚湪璁劇疆_NT_SOURCE_PATH鏃朵嬌鐢?SRV*CachePath"灝嗚〃紺哄惎鐢ㄤ唬鐮佹彁鍙栧姛鑳斤紝鎵цsvn cat鍐欏叆鍒癈achePath鎸囧畾鐨勭洰褰曪紝鍚﹀垯灝嗕嬌鐢ㄥ師濮嬭礬寰勩傛鍚庯紝閫氳繃鐐瑰嚮Call Stack涓殑鍑芥暟璋冪敤渚夸細瑙﹀彂浠巗vn璇誨彇瀵瑰簲浠g爜鐨勬搷浣滐紙閫氬父浼氭湁涓涓畨鍏ㄨ鍛婄獥鍙e脊鍑猴級銆?

     瀵逛簬浣跨敤WinDbg榪涜璋冭瘯鍦ㄦ灝變笉澶氳浜嗭紝鎺ㄨ崘涓鏈笉閿欑殑涔︺夾dvanced Windows Debugging銆嬨?

 

鍙傝冭祫鏂?/strong>

[1] Source Indexing and Symbol Servers: A Guide to Easier Debugging

[2] Source Server Helps You Kill Bugs Dead In Visual Studio 2005



Heath 2012-03-26 23:10 鍙戣〃璇勮
]]>
Arduino瀹炶返&mdash;&mdash;鐢≒S3鎵嬫焺閬ユ帶浣犵殑鐜╁叿http://www.shnenglu.com/heath/archive/2012/02/02/164857.htmlHeathHeathThu, 02 Feb 2012 15:33:00 GMThttp://www.shnenglu.com/heath/archive/2012/02/02/164857.htmlhttp://www.shnenglu.com/heath/comments/164857.htmlhttp://www.shnenglu.com/heath/archive/2012/02/02/164857.html#Feedback4http://www.shnenglu.com/heath/comments/commentRss/164857.htmlhttp://www.shnenglu.com/heath/services/trackbacks/164857.html          瓚佺潃榪囧勾鏀懼亣鍓嶇殑絀洪棽鏃墮棿錛屽紑濮嬬潃鎵嬪疄鐜板湪鈥?a href="http://www.shnenglu.com/heath/archive/2011/11/13/160032.html" target="_blank">Arduino瀹炶返鈥斺旈仴鎺?WD灝忚濺鈥濅竴鏂囦腑鎻愬埌榪囦嬌鐢≒S3鎵嬫焺浣滀負閬ユ帶鍣ㄧ殑鏂規錛屽洜涓鴻繃騫存病鏈夊甫絎旇鏈洖瀹訛紝鐜板湪鏉ヨˉ涓涓嬨?/p>

          棣栧厛瑕佷粙緇嶄竴涓婾SB Host Shield[1]銆傚畠鏄疧leg浠?009騫存槬寮濮嬭璁$殑Arduino Shield錛岄噰鐢∕AX3421E鎺у埗鑺墖錛岀洰鍓嶆渶鏂扮増鏈負2.0錛屾棬鍦ㄨArduino鑳藉涓嶶SB璁懼錛堝錛岄敭鐩樸侀紶鏍囥佹父鎴忔墜鏌勩佺浉鏈恒丟PS銆佹墜鏈猴級榪涜閫氳錛屽綋鐒朵篃鑳藉畬鎴怉DK鐨勫姛鑳姐傚湪杞歡鏂歸潰錛孫leg涔熷湪github涓婂紑鏀句簡椹卞姩浠g爜鍜屼緥瀛愮▼搴廩2]錛屾鍚庡張鏈変漢鍩轟簬鍓嶈呯殑浠g爜緇欏嚭浜嗘洿涓烘柟渚跨畝媧佺殑USB钃濈墮閫傞厤鍣ㄤ笌PS3鎵嬫焺閫氳鐨勭ず渚嬩唬鐮乕3,4]銆?/p>

image

           PS3鎵嬫焺鍙兘涓庡叿鏈夌浉鍚岃摑鐗欏湴鍧鐨勪富鏈洪厤瀵癸紝鎵浠ラ渶瑕佸厛灝哢SB钃濈墮閫傞厤鍣ㄧ殑鍦板潃鍐欏叆PS3鎵嬫焺銆傚彲浠ヤ嬌鐢╗3]涓殑PS3Pair浠g爜錛屽皢BDADDR鍊間慨鏀逛負钃濈墮閫傞厤鍣ㄧ殑鍦板潃銆俒4]涓彁渚涚殑PS3BT渚嬪瓙錛屽皢钃濈墮鍦板潃淇敼鍜岄氳鍔熻兘鏁村悎鍒頒簡涓璧鳳紝鐪佷簡涓嬈ketch鐨剈pload錛屾敞鎰忎篃闇瑕佸皢浠g爜涓殑my_bdaddr淇敼涓洪傞厤鍣ㄧ殑鍦板潃銆傞厤瀵規椂闇瑕佸皢PS3鎵嬫焺榪炴帴綰夸笌USB Host Shield鐩歌繛錛屽緟瀹屾垚鍚庡皢钃濈墮閫傞厤鍣ㄦ帴涓婏紝鎵撳紑鎵嬫焺錛屽彲浠嶴erial Monitor鐪嬪埌鏃ュ織錛堟敞鎰忔嘗鐗圭巼鐨勪竴鑷達級銆?/p>

imageimage

        USB Host Shield鍗犵敤浜哠PI銆丳9銆丳10錛屾敞鎰忎笉瑕佸啿紿佷簡銆?/p>

 

Reference:

[1] http://www.circuitsathome.com/arduino_usb_host_shield_projects

[2] https://github.com/felis/USB_Host_Shield_2.0

[3] https://github.com/Lauszus/PS3-Controller-BT-Library-for-Arduino

[4] https://github.com/TKJElectronics/USB_Host_Shield_2.0



Heath 2012-02-02 23:33 鍙戣〃璇勮
]]>
Playing with Proxmarkhttp://www.shnenglu.com/heath/archive/2012/01/08/163832.htmlHeathHeathSun, 08 Jan 2012 08:21:00 GMThttp://www.shnenglu.com/heath/archive/2012/01/08/163832.htmlhttp://www.shnenglu.com/heath/comments/163832.htmlhttp://www.shnenglu.com/heath/archive/2012/01/08/163832.html#Feedback11http://www.shnenglu.com/heath/comments/commentRss/163832.htmlhttp://www.shnenglu.com/heath/services/trackbacks/163832.html闃呰鍏ㄦ枃

Heath 2012-01-08 16:21 鍙戣〃璇勮
]]>
Arduino瀹炶返鈥斺旈仴鎺?WD灝忚濺http://www.shnenglu.com/heath/archive/2011/11/13/160032.htmlHeathHeathSun, 13 Nov 2011 10:22:00 GMThttp://www.shnenglu.com/heath/archive/2011/11/13/160032.htmlhttp://www.shnenglu.com/heath/comments/160032.htmlhttp://www.shnenglu.com/heath/archive/2011/11/13/160032.html#Feedback1http://www.shnenglu.com/heath/comments/commentRss/160032.htmlhttp://www.shnenglu.com/heath/services/trackbacks/160032.html闃呰鍏ㄦ枃

Heath 2011-11-13 18:22 鍙戣〃璇勮
]]>
RFID Securityhttp://www.shnenglu.com/heath/archive/2011/11/12/159992.htmlHeathHeathSat, 12 Nov 2011 09:43:00 GMThttp://www.shnenglu.com/heath/archive/2011/11/12/159992.htmlhttp://www.shnenglu.com/heath/comments/159992.htmlhttp://www.shnenglu.com/heath/archive/2011/11/12/159992.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/159992.htmlhttp://www.shnenglu.com/heath/services/trackbacks/159992.html    铏界劧MIFARE Classic encryption Crypto-1綆楁硶鍦?8騫村氨琚敾鐮達紝鍥犱負鍗囩駭鎴愭湰浠ュ強澶т紬瀵瑰叾浜х敓鐨勫畨鍏ㄩ棶棰樿繕鏈紩璧瘋凍澶熺殑閲嶈絳夊師鍥狅紝S50/70鐩墠浠嶆棫澶ч噺鐢ㄤ簬璇稿鍏氦鍗°佹牎鍥竴鍗¢氫箣綾葷殑灝忛鏀粯鍗°傜洰鍓嶅凡緇忔湁鍩轟簬libnfc鐨勫紑婧愬伐鍏峰彲浠ヨ幏鍙朚1鐨凨EY銆傜敤NFC reader鍋氫簡涓涓嬪疄楠岋紝鑾峰彇涓寮燤1 S50鐨凙/B KEY澶ф闇瑕?灝忔椂宸﹀彸銆?/p>

    鎵嬩笂鐨凷henZhen Tong鍜孒ongKong Octopus鍧囨槸SONY鐨?a >Felica Card錛屼笌ISO/IEC 18092錛圢FC錛変嬌鐢ㄧ被浼肩殑璋冨埗鏂規硶錛岄噰鐢ㄦ浖鍒囨柉鐗圭紪鐮侊紝鍦?3.56MHZ浠?12kbit/s榪涜閫氳銆備嬌鐢ㄥ姩鎬佸瘑閽ワ紝鍔犲瘑綆楁硶涓篋ES銆?-DES銆丄ES錛屾敾鍑婚毦搴﹁緝澶э紝浣嗘槸浠庡姩鎬佸瘑閽ョ殑浜ゆ崲榪囩▼鍏ユ墜錛岃繕鏄湁鏈轟細鐨勩傜洰鍓嶏紝鏈変簺鎵嬫満鍒墮犲晢錛圢OKIA,SAMSUNG,BLACKBERRY錛夊皢NFC Reader闆嗘垚鍒版墜鏈轟笂錛屾湭鏉FID鐨勫簲鐢ㄥ皢姣旂幇鍦ㄦ洿騫匡紝瀹夊叏闂涔熶細瓚婃潵瓚婂彈鍒板叧娉ㄣ?/p>

 

References:

http://rfidiot.org/

http://wiki.yobi.be/wiki/RFID

http://www.openpcd.org/

http://cq.cx/proxmark3.pl
http://www.proxmark.org/

http://www.libnfc.org/documentation/introduction

http://www.cs.ru.nl/~flaviog/publications/Pickpocketing.Mifare.pdf

http://www.sos.cs.ru.nl/applications/rfid/2008-esorics.pdf



Heath 2011-11-12 17:43 鍙戣〃璇勮
]]>
BackTrack 5 KDE 64bit USB鍚姩涓嶈兘榪涘叆X鐨勮В鍐蟲柟娉?/title><link>http://www.shnenglu.com/heath/archive/2011/11/12/159986.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sat, 12 Nov 2011 05:24:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2011/11/12/159986.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/159986.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2011/11/12/159986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/159986.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/159986.html</trackback:ping><description><![CDATA[<p>rm /root/.kde/cache-root/icon-cache.kcache</p> <p>rm /root/.kde/cache-root/plasma_theme_Volatile.kcache</p> <p>rm /root/.kde/cache-bt/icon-cache.kcache</p> <p>rm /root/.kde/cache-bt/plasma_theme_Volatile.kcache</p><img src ="http://www.shnenglu.com/heath/aggbug/159986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2011-11-12 13:24 <a href="http://www.shnenglu.com/heath/archive/2011/11/12/159986.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Hierarchical Path-Findinghttp://www.shnenglu.com/heath/archive/2011/11/12/159984.htmlHeathHeathSat, 12 Nov 2011 04:50:00 GMThttp://www.shnenglu.com/heath/archive/2011/11/12/159984.htmlhttp://www.shnenglu.com/heath/comments/159984.htmlhttp://www.shnenglu.com/heath/archive/2011/11/12/159984.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/159984.htmlhttp://www.shnenglu.com/heath/services/trackbacks/159984.html     銆?a >Near Optimal Hierarchical Path-Finding銆嬩腑鎻愬嚭浜嗕竴縐嶅眰嬈*綆楁硶錛屾濂借兘澶熺敤浜庤В鍐抽」鐩ぇ鍦板浘瀵昏礬鐨勯棶棰樸傚ぇ鑷存濊礬鏄細1錛夐澶勭悊銆傚皢鍦板浘鍒掑垎涓簄xn澶у皬鐨勫尯鍧楋紝鎵懼嚭姣忎釜鍖哄潡涓庡懆鍥村洓涓尯鍧楀湪杈圭晫涓婄殑浜掗氱偣錛屽湪鍖哄潡涓嬌鐢ㄥ眬閮ˋ*瀵規壘鍑虹殑鐐瑰仛榪為氭ф祴璇曞茍灝嗗叾淇濆瓨涓嬫潵錛?錛夊璺椂錛屼嬌鐢ㄩ澶勭悊寰楀埌鐨勬暟鎹紙杈圭晫涓婄殑鍙氱偣涓庡尯鍧楀唴閮ㄧ殑浜掗氱偣錛夛紝鍏堝湪鍖哄潡灞傜駭涓婂仛涓嬈*錛屾牴鎹粨鏋滃啀鍦ㄦ瘡涓尯鍧椾腑浣跨敤灞閮ˋ*鎵懼埌鍖哄潡涓庡尯鍧椾箣闂寸殑璺緞錛屾渶緇堝緱鍒板畬鏁磋礬寰勩?

涓銆丄* Path-Finding

     A*綆楁硶灝變笉澶氳浜嗭紝鍙弬鑰冿細

     A*綆楁硶鐨勪紭鍖栧彲浠庢悳绱㈣妭鐐瑰偍瀛樺拰OpenList鎺掑簭涓ゆ柟闈㈠叆鎵嬨?

浜屻侀澶勭悊

     姣忎釜鐩擱偦鍖哄潡錛圕1鍜孋2錛夐兘鏈変竴鏉$敱鍏叡杈癸紝璇ヨ竟涓や晶灝忔牸緇勬垚L1鍜孡2錛屽垯榪為氱偣闆咵婊¤凍涓嬪垪鏉′歡錛?

  • E 鈯?L1 鈭?L2
  • 鈭t 鈭?L1 鈭?L2 : t 鈭?E 鈬?symm(t) 鈭?E 錛屽叾涓璼ymm(t)涓哄縐板叧緋?
  • E涓嶅惈涓嶅彲琛岃蛋鏍煎瓙
     瀵瑰湪E涓笖鍚岃竟鐨勮繛緇牸瀛愬彇鍏朵腑鐐癸紝濡備笅鍥炬墍紺猴細

Image(6)

    瀵逛笂闈㈠緱鍒扮殑浣嶄簬鍚屼竴鍖哄潡鐨勭偣闆嗗悎浣跨敤local A*鍋氳繛閫氭ф祴璇曪紝涓嬪浘鐢ㄧ洿綰胯繛鎺ユ潵琛ㄧず涓ょ偣浜掗氾細

Image(7)

涓夈佸璺?/font>

     浣跨敤鍖哄潡榪為氫俊鎭紝榪涜鍖哄潡綰*錛屽緱鍒板尯鍧椾箣闂寸殑榪炴帴鐐癸紝濡傛灉鍦ㄩ澶勭悊鏃朵繚瀛樹簡鍖哄潡鍐呬簰閫氱偣鐨勮礬寰勶紝灝變笉蹇呭啀榪涜鍖哄潡鍐呯殑local A*浜嗐?

     瀹為獙緇撴灉琛ㄦ槑錛屽湪鏈噰鐢ㄥ尯鍧楀唴棰勫瓨璺緞鐨勬儏鍐典笅錛屼腑闀胯窛紱誨璺嬌鐢ㄥ眰嬈*鍚庣殑騫沖潎鏁堢巼鏄櫘閫欰*鐨?鍊嶄互涓婏紝璺濈瓚婇暱鏁堢巼瀵規瘮瓚婃槑鏄俱?

image

     A* 93ms

image

HPA* 15ms

     浠庝笂鍥句腑鍙互鐪嬪嚭錛孒PA*寰楀埌鐨勮礬寰勫茍涓嶆槸鏈浼樼殑錛屽畠鏄湪鏈浼樺拰鏁堢巼涓婄殑鎶樹腑錛岄傚悎浣滀負闀胯窛紱誨璺殑涓縐嶄紭鍖栨柟妗堛?

鍥涖佷紭鍖栫偣

  • 鍙墿灞曚負澶氬眰鑰屼笉浠呴檺浜庝竴灞?
  • 棰勫瓨鍖哄潡鍐呰繛閫氱偣璺緞
  • 鍖哄潡杈圭晫鍙氶潰縐緝澶ф椂錛屼駭鐢熶笉鑷劧璺緞錛屽涓嬪浘鎵紺猴細

image

          涓涓敼榪涚殑鏂規硶鏄榪囬暱鐨勮竟鐣屽啀鍋氬垝鍒嗭細

Image(5)



Heath 2011-11-12 12:50 鍙戣〃璇勮
]]>
淇D3DXQuaternionSquad涓嶈兘姝g‘澶勭悊鍙嶅悜Quaternions鐨凚UGhttp://www.shnenglu.com/heath/archive/2011/08/21/154037.htmlHeathHeathSun, 21 Aug 2011 14:16:00 GMThttp://www.shnenglu.com/heath/archive/2011/08/21/154037.htmlhttp://www.shnenglu.com/heath/comments/154037.htmlhttp://www.shnenglu.com/heath/archive/2011/08/21/154037.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/154037.htmlhttp://www.shnenglu.com/heath/services/trackbacks/154037.html寰蔣DX搴撻噷鎻愪緵浜嗗Quaternion榪涜鐞冮潰鍥涜竟褰㈠唴鎻掔殑鎺ュ彛錛岃兘澶熷湪澶氫釜Quaternion涔嬮棿騫蟲粦鎻掑箋傝繖閲屾秹鍙婂埌涓や釜鎺ュ彛錛?/p>
void D3DXQuaternionSquadSetup(
  __out  D3DXQUATERNION *pAOut,
  __out  D3DXQUATERNION *pBOut,
  __out  D3DXQUATERNION *pCOut,
  __in   const D3DXQUATERNION *pQ0,
  __in   const D3DXQUATERNION *pQ1,
  __in   const D3DXQUATERNION *pQ2,
  __in   const D3DXQUATERNION *pQ3
);
D3DXQUATERNION* D3DXQuaternionSquad(
  __inout  D3DXQUATERNION *pOut,
  __in     const D3DXQUATERNION *pQ1,
  __in     const D3DXQUATERNION *pA,
  __in     const D3DXQUATERNION *pB,
  __in     const D3DXQUATERNION *pC,
  __in     FLOAT t
);
鍏朵腑錛孌3DXQuaternionSquadSetup鐢ㄤ簬榪斿洖鍐呮彃鐨勬帶鍒剁偣銆傚畠浠叿浣撶殑瀹炵幇鍏紡鍜岀敤娉曪紝鏈夊叴瓚g殑鍚屽鍙互鍙傝僊SDN銆傚湪姝ら渶瑕佽鏄庣殑鏄紝
D3DXQuaternionSquad浣跨敤浜哠lerp浣滀負鍐呴儴瀹炵幇錛屼細瀵艱嚧鍦ㄤ袱涓す瑙掍負180擄宸﹀彸鐨凲uaternion涔嬮棿鎻掑間細鍑虹幇鏂鐨勯棶棰樸備笅闈唬鐮侀氳繃
瀹炵幇涓涓冭檻浜嗕笂榪版儏鍐電殑Slerp鐗堟湰錛屽湪q1鍜宷2澶硅鍦?擄鎴栬?80擄鏃訛紝浣跨敤綰挎у唴鎻掕岄潪鐞冮潰錛屾潵瑙e喅璇ラ棶棰樸?/pre>
  1. Quaternion QuatSlerpNoInvert(const Quaternion& q1 , const Quaternion& q2 , float t)
  2. {
  3. 聽聽聽聽float cosAngle = DotProduct(q1, q2);
  4.  
  5. 聽聽聽聽float c1, c2;
  6. 聽聽聽聽// Linear interpolation for close orientations
  7. 聽聽聽聽if ((1.0f - fabs(cosAngle)) < 1e-5f)
  8. 聽聽聽聽{
  9. 聽聽聽聽聽聽聽聽c1 = 1.0f - t;
  10. 聽聽聽聽聽聽聽聽c2 = t;
  11. 聽聽聽聽}
  12. 聽聽聽聽else
  13. 聽聽聽聽{
  14. 聽聽聽聽聽聽聽聽// Spherical interpolation
  15. 聽聽聽聽聽聽聽聽float angle聽聽聽聽= acos(fabs(cosAngle));
  16. 聽聽聽聽聽聽聽聽float sinAngle = sin(angle);
  17. 聽聽聽聽聽聽聽聽c1 = sin(angle * (1.0f - t)) / sinAngle;
  18. 聽聽聽聽聽聽聽聽c2 = sin(angle * t) / sinAngle;
  19. 聽聽聽聽}
  20.  
  21. 聽聽聽聽Quaternion q = q1 * c1 + q2 * c2;
  22. 聽聽聽聽q.Normalize();
  23.  
  24. 聽聽聽聽return q;
  25. }
  26.  
  27. Quaternion QuatSquad(const Quaternion& p1 , const Quaternion& p2 , const Quaternion& p3 , const Quaternion& p4 , float t)
  28. {
  29. 聽聽聽聽static Quaternion a , b , c;
  30.  
  31. 聽聽聽聽D3DXQuaternionSquadSetup((D3DXQUATERNION*)&a , (D3DXQUATERNION*)&b , (D3DXQUATERNION*)&c ,
  32. 聽聽聽聽聽聽聽聽(D3DXQUATERNION*)&p1 , (D3DXQUATERNION*)&p2 , (D3DXQUATERNION*)&p3 , (D3DXQUATERNION*)&p4);
  33.  
  34. 聽聽聽聽return QuatSlerpNoInvert(QuatSlerpNoInvert(p2 , c , t) , QuatSlerpNoInvert(a , b , t) , 2 * t * (1-t));
  35. }

 

鍙傝冿細

[1] http://msdn.microsoft.com/en-us/library/bb205419(v=vs.85).aspx

[2] http://msdn.microsoft.com/en-us/library/bb205420(v=vs.85).aspx



Heath 2011-08-21 22:16 鍙戣〃璇勮
]]>涓涓猀TE鍘熷瀷妗嗘灦http://www.shnenglu.com/heath/archive/2011/08/13/153251.htmlHeathHeathSat, 13 Aug 2011 02:25:00 GMThttp://www.shnenglu.com/heath/archive/2011/08/13/153251.htmlhttp://www.shnenglu.com/heath/comments/153251.htmlhttp://www.shnenglu.com/heath/archive/2011/08/13/153251.html#Feedback4http://www.shnenglu.com/heath/comments/commentRss/153251.htmlhttp://www.shnenglu.com/heath/services/trackbacks/153251.html鏈枃涓昏鏍規嵁鑷繁鍦ㄩ」鐩腑寮鍙戠殑QTE緋葷粺錛屼粙緇嶄竴涓浉瀵規瘮杈冪畝鍗曠殑鍘熷瀷妗嗘灦銆?nbsp; 闃呰鍏ㄦ枃

Heath 2011-08-13 10:25 鍙戣〃璇勮
]]>
瀹炵幇涓涓互瀛楃涓蹭負Key澶у皬鍐欎笉鏁忔劅鐨凥ash Maphttp://www.shnenglu.com/heath/archive/2011/07/13/150906.htmlHeathHeathWed, 13 Jul 2011 15:36:00 GMThttp://www.shnenglu.com/heath/archive/2011/07/13/150906.htmlhttp://www.shnenglu.com/heath/comments/150906.htmlhttp://www.shnenglu.com/heath/archive/2011/07/13/150906.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/150906.htmlhttp://www.shnenglu.com/heath/services/trackbacks/150906.html    Hash Map鏈変袱涓叧閿柟娉曪細鍝堝笇鍊艱綆楁柟娉曞拰姣旇緝鏂規硶銆備互STLPort涓轟緥錛岄氳繃Hash Map鐨勬ā鐗堝畾涔夊彲浠ョ湅鍑猴紝鍏剁己鐪佺殑鍝堝笇Functor鏄痟ash錛屾瘮杈僨unctor涓篹qual_to錛?/p>
  1. template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>),
  2. 聽聽聽聽聽聽聽聽聽聽_STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Key>),
  3. 聽聽聽聽聽聽聽聽聽聽_STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_STLP_CONST _Key, _Tp) >
  4. class hash_map

    鍦╛hash_fun.h涓湁閽堝鍚勭綾誨瀷鐨勫搱甯屽艱綆楃壒鍖栫増鏈紝涓嬮潰浠呮憳褰曢拡瀵笴瀛楃涓茬殑浠g爜錛?/p>

  1. inline size_t __stl_hash_string(const char* __s) {
  2. 聽聽_STLP_FIX_LITERAL_BUG(__s)
  3. 聽聽unsigned long __h = 0;
  4. 聽聽for ( ; *__s; ++__s)
  5. 聽聽聽聽__h = 5*__h + *__s;
  6.  
  7. 聽聽return size_t(__h);
  8. }
  9.  
  10. _STLP_MOVE_TO_STD_NAMESPACE
  11.  
  12. _STLP_TEMPLATE_NULL
  13. struct hash<char*> {
  14. 聽聽size_t operator()(const char* __s) const {
  15. 聽聽聽聽_STLP_FIX_LITERAL_BUG(__s)
  16. 聽聽聽聽return _STLP_PRIV __stl_hash_string(__s);
  17. 聽聽}
  18. };
  19.  
  20. _STLP_TEMPLATE_NULL
  21. struct hash<const char*> {
  22. 聽聽size_t operator()(const char* __s) const {
  23. 聽聽聽聽_STLP_FIX_LITERAL_BUG(__s)
  24. 聽聽聽聽return _STLP_PRIV __stl_hash_string(__s);
  25. 聽聽}
  26. };

    __stl_hash_string瀹炵幇浜嗕竴涓畝鍗曠殑鍝堝笇綆楁硶錛屽洜涓虹畻娉曚腑浣跨敤浜嗗瓧絎︾殑ASCII鐮侊紝涓轟簡杈懼埌澶у皬鍐欎笉鏁忔劅鐨勭洰鐨勶紝鍙皢姣忎釜瀛楃杞崲鎴愬皬鍐?澶у啓鏉ヨ綆椼傚浜巋ash functor錛屾垜浠篃闇瑕佷竴涓猻tring鐨勭壒鍖栫増銆?/p>

    鍦╛function_base.h涓畾涔変簡equal_to functor錛?/p>

  1. template <class _Arg1, class _Arg2, class _Result>
  2. struct binary_function {
  3. 聽聽typedef _Arg1 first_argument_type;
  4. 聽聽typedef _Arg2 second_argument_type;
  5. 聽聽typedef _Result result_type;
  6. #if !defined (__BORLANDC__) || (__BORLANDC__ < 0x580)
  7. protected:
  8. 聽聽/* See unary_function comment. */
  9. 聽聽~binary_function() {}
  10. #endif
  11. };
  12.  
  13. template <class _Tp>
  14. struct equal_to : public binary_function<_Tp, _Tp, bool> {
  15. 聽聽bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; }
  16. };

    閫氳繃瀹氬埗涓涓猻tring鐗堟湰鐨別qual_to錛屼嬌鐢╯tricmp榪涜瀛楃涓叉瘮杈冦備笅闈㈠垪鍑哄疄鐜板強嫻嬭瘯浠g爜錛?/p>

Test Codes
  1. #include <hash_map>
  2. #include <string>
  3. #include <algorithm>
  4. #include <cctype>
  5.  
  6. inline size_t __stl_hash_string(const char* __s)
  7. {
  8. 聽聽聽聽unsigned long __h = 0;
  9. 聽聽聽聽for ( ; *__s; ++__s)
  10. 聽聽聽聽聽聽聽聽__h = 5*__h + tolower(*__s);
  11.  
  12. 聽聽聽聽return size_t(__h);
  13. }
  14.  
  15. template<>
  16. struct stlport::hash<stlport::string>
  17. {
  18. 聽聽聽聽size_t operator()(const stlport::string& __s) const
  19. 聽聽聽聽{
  20. 聽聽聽聽聽聽聽聽return __stl_hash_string(__s.c_str());
  21. 聽聽聽聽}
  22. };
  23.  
  24. template<>
  25. struct stlport::equal_to<stlport::string>
  26. 聽聽聽聽: public stlport::binary_function<stlport::string , stlport::string , bool>
  27. {
  28. 聽聽聽聽bool operator()(const stlport::string& __x, const stlport::string& __y) const
  29. 聽聽聽聽{
  30. 聽聽聽聽聽聽聽聽return !_stricmp(__x.c_str() , __y.c_str());
  31. 聽聽聽聽}
  32. };
  33.  
  34. int _tmain(int argc, _TCHAR* argv[])
  35. {
  36. 聽聽聽聽stlport::hash_map<stlport::string , int> map;
  37.  
  38. 聽聽聽聽map.insert(stlport::make_pair("Test" , 123));
  39.  
  40. 聽聽聽聽stlport::hash_map<stlport::string , int>::iterator iter = map.find("teSt");
  41. 聽聽聽聽if(iter != map.end())
  42. 聽聽聽聽聽聽聽聽printf("Found!\n");
  43.  
  44. 聽聽聽聽return 0;
  45. }


Heath 2011-07-13 23:36 鍙戣〃璇勮
]]>
璁¬C++ 2003涓嶹in7鍜岀潶鐩稿http://www.shnenglu.com/heath/archive/2011/03/14/141837.htmlHeathHeathMon, 14 Mar 2011 15:49:00 GMThttp://www.shnenglu.com/heath/archive/2011/03/14/141837.htmlhttp://www.shnenglu.com/heath/comments/141837.htmlhttp://www.shnenglu.com/heath/archive/2011/03/14/141837.html#Feedback1http://www.shnenglu.com/heath/comments/commentRss/141837.htmlhttp://www.shnenglu.com/heath/services/trackbacks/141837.html    寰蔣澶唉铏氫簡錛學in7瀵筕S2003鐨勫吋瀹規у茍涓嶅儚浠栬鐨勯偅鏍峰樊銆傚叾瀹炰粎鏈変袱涓棶棰橈細

1銆乻earch鏃剁▼搴忔鎺?/p>

2銆乨ebug鏃墮攣浣弍db涓嶉噴鏀撅紝涓嬫build鏃跺嚭鐜版枃浠跺啓閿欒

    瀵逛簬絎竴涓棶棰橈紝鍦╠evenv.exe灞炴х殑Compatibility鐨凷ettings涓嬀閫夆淒isable visual themes鈥濓紝鎴栬呭仠鐢ˋero涓婚錛屼嬌鐢˙asic themes銆?/p>

    瀵逛簬絎簩涓棶棰橈紝鍙嬌鐢╯ysinternals宸ュ叿handle鏉ラ噴鏀懼pdb鐨勫紩鐢紝鍦ㄦ涓嶅垪鍑篽andle鐨勪嬌鐢紝鏈夊叴瓚e彲浠ヨ嚜宸辯爺絀躲備笅闈㈢粰鍑轟竴涓壒澶勭悊錛屽叧闂寚瀹氬悕縐扮殑pdb鏂囦歡鍗犵敤錛?/p>

@echo off
cd /d "%~dp0"
for /f "tokens=2-3 skip=5 delims=:" %%a in ('handle -p devenv.exe "%1.pdb"') do (
  for /f "tokens=1,4" %%c in ("%%a%%b") do (
      handle.exe -c %%d -y -p %%c
  )
)
@echo on

    灝嗗叾淇濆瓨鍒頒竴涓枃浠訛紝鏀懼湪project鐨刾re-build event銆傚綋鐒訛紝榪橀渶瑕佷竴涓弬鏁版潵鍠傛壒澶勭悊涓殑%1銆?/p>

Heath 2011-03-14 23:49 鍙戣〃璇勮
]]>
HACKING EBOOT.BINhttp://www.shnenglu.com/heath/archive/2011/03/06/141220.htmlHeathHeathSun, 06 Mar 2011 09:52:00 GMThttp://www.shnenglu.com/heath/archive/2011/03/06/141220.htmlhttp://www.shnenglu.com/heath/comments/141220.htmlhttp://www.shnenglu.com/heath/archive/2011/03/06/141220.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/141220.htmlhttp://www.shnenglu.com/heath/services/trackbacks/141220.html闃呰鍏ㄦ枃

Heath 2011-03-06 17:52 鍙戣〃璇勮
]]>
綆楁硶浼樺寲&mdash;&mdash;閫掑綊鍒板驚鐜?/title><link>http://www.shnenglu.com/heath/archive/2011/03/05/141160.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sat, 05 Mar 2011 05:42:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2011/03/05/141160.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/141160.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2011/03/05/141160.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/141160.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/141160.html</trackback:ping><description><![CDATA[<p>     閫掑綊閫氬父寰堢洿鐧藉湴鎻忚堪浜嗕竴涓眰瑙h繃紼嬶紝鍥犳涔熸槸鏈瀹規槗琚兂鍒板拰瀹炵幇鐨勭畻娉曘傚驚鐜叾瀹炲拰閫掑綊鍏鋒湁鐩稿悓鐨勭壒鎬э紙鍗籌細鍋氶噸澶嶄換鍔★級錛屼絾鏈夋椂錛屼嬌鐢ㄥ驚鐜殑綆楁硶騫朵笉浼氶偅涔堟竻鏅板湴鎻忚堪瑙e喅闂姝ラ銆傚崟浠庣畻娉曡璁′笂鐪嬶紝閫掑綊鍜屽驚鐜茍鏃犱紭鍔d箣鍒傜劧鑰岋紝鍦ㄥ疄闄呭紑鍙戜腑錛屽洜涓哄嚱鏁拌皟鐢ㄧ殑寮閿錛岄掑綊甯稿父浼氬甫鏉ユц兘闂錛岀壒鍒槸鍦ㄦ眰瑙h妯′笉紜畾鐨勬儏鍐典笅銆傝屽驚鐜洜涓烘病鏈夊嚱鏁拌皟鐢ㄥ紑閿錛屾墍浠ユ晥鐜囦細姣旈掑綊楂樸傞櫎灝戞暟緙栫▼璇█瀵歸掑綊榪涜浜嗕紭鍖栧錛屽ぇ閮ㄥ垎璇█鍦ㄥ疄鐜伴掑綊綆楁硶鏃惰繕鏄崄鍒嗙鎷欙紝鐢辨甯︽潵浜嗗浣曞皢閫掑綊綆楁硶杞崲涓哄驚鐜畻娉曠殑闂銆傜畻娉曡漿鎹㈠簲褰撳緩绔嬪湪瀵規眰瑙h繃紼嬪厖鍒嗙悊瑙g殑鍩虹涓婏紝鏈夋椂鐢氳嚦闇瑕佸彟杈熻箠寰勩? <p>     鍓嶆鏃墮棿閬囧埌榪囪繖鏍風殑闂錛氬凡鐭ヤ竴2D鍦板浘鏍煎瓙鐨勯暱瀹斤紙w銆乭錛夊強姣忎釜鏍煎瓙鐨勮竟闀匡紙a錛屾牸瀛愪負姝f柟褰級錛岀粰瀹氱墿浣撶殑2D鍧愭爣錛坧os[x , y]錛夊強鍗婂緞錛坮錛夛紝姹傝В鐗╀綋鍦?D鍦板浘鏍煎瓙涓墍鍗犵殑鏍煎瓙錛屼粎鑰冭檻n*n鐨勬儏鍐點傚ぇ姒傜殑姹傝В榪囩▼濡備笅錛? <p>1錛夋牴鎹崐寰勶紝紜畾n*n涓殑n銆傚亣瀹氳綆楀叕寮忎負錛歯 = Round(2*r / a) <p>2錛夋牴鎹?D鍧愭爣寰楀埌鐗╀綋鐨勨滀腑蹇冩牸瀛愨濄傛牴鎹畁鐨勫鍋訛紝璁$畻鍏紡涓嶅悓錛屽涓嬪浘鎵紺恒? <p align="center"><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_10.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_thumb_4.png" width="239" height="244"></a>                  <a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_12.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_thumb_5.png" width="240" height="244"></a></p> <p align="center">n涓哄伓鏁癧1]                                                                    n涓哄鏁癧2]</p> <p>[1]錛歡rid(x , y) = Round(pos / a) <p>[2]錛歡rid(x , y) = Floor(pos / a) <p>鍏朵腑錛屾牸瀛愬潗鏍噚 >= 0 , y >= 0銆? <p>3錛変互鈥滀腑蹇冩牸瀛愨濅負鍩虹錛屾眰鍑虹墿浣撳崰鎹殑鍏朵粬鏍煎瓙銆傝繖鏍風殑鎻忚堪錛岃浜哄鏄撴兂鍒伴掑綊錛屽氨鍍忕敤娣卞害浼樺厛鏂規硶閬嶅巻鏍戦偅鏍鳳紝浼唬鐮佺畻娉曞涓嬶細</p> <div style="padding-bottom: 0px; padding-left: 0px; width: 1032px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:866d37ab-87f1-4aea-9d49-b7235fcfb0e9" class="wlWriterEditableSmartContent"><pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"><span style="color: #0000FF;">if</span><span style="color: #000000;"> n is even { get the index of </span><span style="color: #800000;">'</span><span style="color: #800000;">center grid</span><span style="color: #800000;">'</span><span style="color: #000000;"> (row , col) ExtendHeldGrid(row , col , n) ExtendHeldGrid(row </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col , n) ExtendHeldGrid(row </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , n) ExtendHeldGrid(row , col </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , n) } </span><span style="color: #0000FF;">else</span><span style="color: #000000;"> { get the index of </span><span style="color: #800000;">'</span><span style="color: #800000;">center grid</span><span style="color: #800000;">'</span><span style="color: #000000;"> (row , col) ExtendHeldGrid(row , col , n) } </span><span style="color: #0000FF;">function</span><span style="color: #000000;"> ExtendHeldGrid(row , col , level) { </span><span style="color: #0000FF;">if</span><span style="color: #000000;">(level </span><span style="color: #000000;"><=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">) </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> </span><span style="color: #0000FF;">if</span><span style="color: #000000;">((row </span><span style="color: #000000;">>=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;"> </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> row </span><span style="color: #000000;"><</span><span style="color: #000000;"> MaxGridWidth) </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> (col </span><span style="color: #000000;">>=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;"> </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> col </span><span style="color: #000000;"><</span><span style="color: #000000;"> MaxGridHeight)) { mark the grid(row , col) ExtendHeldGrid(row , col , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) </span><span style="color: #0000FF;">if</span><span style="color: #000000;">(level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;"> </span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">) { ExtendHeldGrid(row </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) ExtendHeldGrid(row </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) ExtendHeldGrid(row , col </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) ExtendHeldGrid(row , col </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) ExtendHeldGrid(row </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) ExtendHeldGrid(row </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) ExtendHeldGrid(row </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) ExtendHeldGrid(row </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , col </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> , level </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) } } } </span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p>铏界劧錛岃綆楁硶寰楀埌浜嗘紜殑姹傝В緇撴灉錛屼絾鏄敱浜庢瘡涓牸瀛愰兘浼氭爣璁板懆鍥寸殑8涓牸瀛愶紝鎵浠ュ瓨鍦ㄥぇ閲忕殑閲嶅錛屽啀鑰呭鏋滀笂闈㈢殑榪囩▼姣忓撫閮借繘琛岀殑璇濓紝鍑芥暟璋冪敤寮閿涔熸槸鐩稿綋鍙銆?/p> <p>寰幆鑷劧鏄笉鍙伩鍏嶇殑錛屾秷闄ら噸澶嶄究鎴愪簡浼樺寲鐨勭洰鏍囥傚垎鏋愭牸瀛愬浘鍜宯涓?鍜?鐨勬儏鍐碉紝璇曞浘鎵懼嚭鐢ㄥ驚鐜唬鏇塊掑綊鐨勬柟娉曪紝鎴戝彂鐜頒簡涓嬮潰涓涓湁瓚g殑瑙勫緥錛?/p> <p align="center"><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_16.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_thumb_7.png" width="239" height="244"></a>                <a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_18.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_thumb_8.png" width="240" height="244"></a></p> <p>浠庘滀腑蹇冩牸瀛愨濆嚭鍙戯紝欏烘椂閽堬紙鎴栭嗘椂閽堬級浠ヤ笂鍥炬柟寮忓彲浠ヨ蛋閬嶆墍姹傝В鐨勬瘡涓牸瀛愯屼笉閲嶅銆傚湪瀹炵幇涓婏紝姣忎釜杞涔熸槸鏈夎寰嬬殑錛屽彲浠ラ氳繃涓涓?*2鐨勮漿瑙掔煩闃墊潵鎺у埗錛?/p> <p align="center">[1 , 0][0 , -1]</p> <p align="center">[0 , 1][-1 , 0]</p> <p align="center">欏烘椂閽堟柟寮忕殑杞闃?/p> <p align="left"> </p> <p>鐭╅樀涓殑姣忎釜鍏冪礌浠h〃浠庡綋鍓嶆牸瀛愯蛋鍒頒笅涓牸瀛愬湪row鍜宑ol涓婄殑鍙樺寲銆傚姞涔嬶紝鍦ㄨ漿瑙掍箣闂寸殑璺暱錛堜互鏍煎瓙涓暟璁★級鏈夋瘡杞袱嬈¢掑鍗曚綅1鐨勮寰嬶紝綆楁硶灝變笉闅懼緱鍒頒簡錛屼笅闈㈠悓鏍蜂互浼唬鐮佺ず錛?/p> <div style="padding-bottom: 0px; padding-left: 0px; width: 1032px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:c1053f9b-292c-4f91-b901-a530b31c17c3" class="wlWriterEditableSmartContent"><pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"><span style="color: #000000;">conerMat </span><span style="color: #000000;">=</span><span style="color: #000000;"> { {</span><span style="color: #800080;">0</span><span style="color: #000000;"> , </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">} , {</span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;"> , </span><span style="color: #800080;">0</span><span style="color: #000000;">} , {</span><span style="color: #800080;">0</span><span style="color: #000000;"> , </span><span style="color: #800080;">1</span><span style="color: #000000;">} , {</span><span style="color: #800080;">1</span><span style="color: #000000;"> , </span><span style="color: #800080;">0</span><span style="color: #000000;">} } dir </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;"> </span><span style="color: #000000;">///</span><span style="color: #000000;"> 杞鎺у埗錛屽洓涓漿瑙掗『鏃墮拡0~</span><span style="color: #800080;">3</span><span style="color: #000000;"> span </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> </span><span style="color: #000000;">///</span><span style="color: #000000;"> 杞闂寸殑璺ㄥ害 count </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> </span><span style="color: #000000;">///</span><span style="color: #000000;"> 姣忎袱嬈″鍔犱竴涓法搴? rin </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> </span><span style="color: #000000;">///</span><span style="color: #000000;"> 涓嬩竴涓漿瑙掔殑寰幆绱㈠紩 </span><span style="color: #0000FF;">if</span><span style="color: #000000;"> n is even get the index of </span><span style="color: #800000;">'</span><span style="color: #800000;">center grid</span><span style="color: #800000;">'</span><span style="color: #000000;"> (row , col) </span><span style="color: #0000FF;">else</span><span style="color: #000000;"> get the index of </span><span style="color: #800000;">'</span><span style="color: #800000;">center grid</span><span style="color: #800000;">'</span><span style="color: #000000;"> (row , col) </span><span style="color: #0000FF;">for</span><span style="color: #000000;">(i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> n </span><span style="color: #000000;">*</span><span style="color: #000000;"> n; </span><span style="color: #000000;">++</span><span style="color: #000000;">i) { </span><span style="color: #0000FF;">if</span><span style="color: #000000;">((row </span><span style="color: #000000;">>=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;"> </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> row </span><span style="color: #000000;"><</span><span style="color: #000000;"> MaxGridWidth) </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> (col </span><span style="color: #000000;">>=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;"> </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> col </span><span style="color: #000000;"><</span><span style="color: #000000;"> MaxGridHeight)) mark the grid(row , col) </span><span style="color: #0000FF;">if</span><span style="color: #000000;">(i </span><span style="color: #000000;">==</span><span style="color: #000000;"> rin) { dir </span><span style="color: #000000;">=</span><span style="color: #000000;"> (dir </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;">) </span><span style="color: #000000;">%</span><span style="color: #000000;"> </span><span style="color: #800080;">4</span><span style="color: #000000;"> </span><span style="color: #0000FF;">if</span><span style="color: #000000;">(count </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #800080;">2</span><span style="color: #000000;">) { </span><span style="color: #000000;">++</span><span style="color: #000000;">span count </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> } </span><span style="color: #0000FF;">else</span><span style="color: #000000;"> </span><span style="color: #000000;">++</span><span style="color: #000000;">count rin </span><span style="color: #000000;">=</span><span style="color: #000000;"> i </span><span style="color: #000000;">+</span><span style="color: #000000;"> span } row </span><span style="color: #000000;">=</span><span style="color: #000000;"> row </span><span style="color: #000000;">+</span><span style="color: #000000;"> conerMat[dir][</span><span style="color: #800080;">0</span><span style="color: #000000;">] col </span><span style="color: #000000;">=</span><span style="color: #000000;"> col </span><span style="color: #000000;">+</span><span style="color: #000000;"> conerMat[dir][</span><span style="color: #800080;">1</span><span style="color: #000000;">] } </span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p>鐢∕FC紼嬪簭楠岃瘉浜嗕竴涓嬬畻娉曠殑姝g‘鎬э紝鏍囧彿灞曠ず浜嗗驚鐜殑璺嚎錛堟敞鎰廏DI鐨勫潗鏍囩郴涓璝鐨勬鏂瑰悜鏈濅笅錛夛細</p> <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_20.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/e7377895b269_9CB8/image_thumb_9.png" width="863" height="510"></a></p><img src ="http://www.shnenglu.com/heath/aggbug/141160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2011-03-05 13:42 <a href="http://www.shnenglu.com/heath/archive/2011/03/05/141160.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>瀵筎ortoiseSVN鐨勬墿灞曞疄璺?/title><link>http://www.shnenglu.com/heath/archive/2011/01/23/139190.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sun, 23 Jan 2011 13:55:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2011/01/23/139190.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/139190.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2011/01/23/139190.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/139190.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/139190.html</trackback:ping><description><![CDATA[<p>    涓漢鏈変釜闇姹傦紝甯屾湜鍦╱pdate鏃剁敤棰滆壊楂樹寒鍑鴻嚜宸辨劅鍏磋叮鐨勬枃浠訛紝鐩墠鎴戝彧瀵箂ln鍙妚cproj鏂囦歡鎰熷叴瓚c?/p> <p>    棣栧厛鎯沖埌鐨勬槸鐢═SVN鐨刪ook script(client side)錛屼絾浠旂粏鐮旂┒鍚庡彂鐜頒紶鍏cript鐨勫弬鏁頒粎鏈夋搷浣滆礬寰勶紝涓旈氳繃script涔熶笉鍙兘璁塊棶/淇敼Notify瀵硅瘽妗嗕腑鐨勪俊鎭拰瀛椾綋棰滆壊銆傚敮涓鐨勫姙娉曞氨鏄慨鏀規簮浠g爜閲嶆柊緙栬瘧錛屼粠TSVN瀹樻柟浠g爜搴撹幏鍙栧埌浜唗runk source code鍚庯紝鎸夌収鏍硅礬寰勪笅鐨刡uild.txt鏂囨。榪涜鏋勫緩錛坉oc\build-zh_CN.txt鏈変簺榪囨椂浜嗭紝涓嶈鎸夌収璇ユ枃妗h繘琛屾瀯寤猴級錛屾渶鏂頒唬鐮侀渶瑕佺敤鍒癡C++10.0緙栬瘧錛岃繃紼嬩腑闄や簡hunspell涓媋ffixmgr.cxx銆乭ashmgr.cxx鍜宧unspell.cxx涓変釜鏂囦歡鐢變簬svn鐨勭紪鐮佽漿鎹㈠鑷存枃浠跺唴瀹瑰紓甯稿錛屾病浠涔堝ぇ闂銆?/p> <p>    TSVN鐨勪唬鐮佸啓寰楀緢beautiful錛岃繖涓璧炰竴涓嬨傚湪娓呮櫚鐨勭粨鏋勪笅寰堝揩瀵箂ource code榪涜浜嗗垎鏋愶紝鍙戠幇TSVN鐨勬搷浣滃鐞嗕唬鐮佷綅浜巗rc\TortoiseProc涓嬮潰錛岃屽鍚勭鎿嶄綔鐨刄I鍙嶉涓昏鏀懼湪SVNProgressDlg涓傛壘鍒拌淇敼鐨勫湴鏂癸紝娣誨姞浜嗗嚑琛屼唬鐮侊紝鐢∟Ant鏋勫緩鍚庯紝鏇挎崲鐜拌鐗堜腑鐨勫搴旀枃浠訛紝鍑虹幇subversion too old闂錛岀偣寮TortoiseProc.exe鍙戠幇鏈鏂頒唬鐮佷腑鐨剆ubversion鐗堟湰宸茬粡鐢ㄥ埌浜?.7.2錛岃孴SVN瀵瑰鍙戝竷鐨勬渶鏂扮増鍗磋繕鏄?.6.15錛屽彲鑳芥槸寮鍙戣呰涓鴻法MinorVersion灝辯畻too old浜嗗惂銆傜畻浜嗭紝涓嶆姌鑵句簡錛岀洿鎺ユ媺鍙戝竷鐗?.6.12鐨則ag鏉ヤ慨鏀瑰惂銆?/p> <p>    1.6.12鐗堢殑source code鐢╒C++9.0緙栬瘧錛屾寜鐓uild鏂囨。璋冩暣涓涓嬩笌鍓嶉潰鏋勫緩鏈夊樊寮傜殑鍦版柟錛屽煎緱娉ㄦ剰鐨勬槸TSVN鐢ㄥ埌浜哛ibbon錛屾墍浠ュ繀欏誨厛瀹夎涓涓媣s2008 sp1琛ヤ竵銆傚湪鏋勫緩TortoiseProc鏃訛紝鏈変釜澶存枃浠朵腑閲嶅澹版槑浜哅FC涓凡緇忓畾涔変簡鐨勭被鍨嬶紝瀵艱嚧鏋勫緩澶辮觸錛岄渶瑕佸皢閲嶅瀹氫箟涔嬪娉ㄩ噴鎺夈俆ortoiseProc涓鍑猴紝鎴戠殑鐩殑灝辮揪鍒頒簡錛岀敱浜庢瀯寤虹殑鐗堟湰涓庢垜瀹夎鐨勪竴鑷達紝鎵浠ュ彧闇鏇挎崲TortoiseProc.exe錛岀粡嫻嬭瘯涓鍒嘜K銆?/p> <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/3869eb50ee51_FB58/test_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="test" border="0" alt="test" src="http://www.shnenglu.com/images/cppblog_com/heath/Windows-Live-Writer/3869eb50ee51_FB58/test_thumb.png" width="671" height="310"></a> </p> <p>    涓漢瑙夊緱錛屽TSVN鐨勬墿灞曡繕鏄夯鐑︿簡涓鐐癸紝鏁翠釜鏋勫緩榪囩▼鑺辮垂浜嗗ぇ閲忔椂闂達紝寤鴻澧炲己hook script銆?/p><img src ="http://www.shnenglu.com/heath/aggbug/139190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2011-01-23 21:55 <a href="http://www.shnenglu.com/heath/archive/2011/01/23/139190.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐢ˋndroid鎵嬫満鐨凴ecovery妯″紡Downgrade &amp; Jailbreak PS3http://www.shnenglu.com/heath/archive/2010/12/25/137418.htmlHeathHeathSat, 25 Dec 2010 04:34:00 GMThttp://www.shnenglu.com/heath/archive/2010/12/25/137418.htmlhttp://www.shnenglu.com/heath/comments/137418.htmlhttp://www.shnenglu.com/heath/archive/2010/12/25/137418.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/137418.htmlhttp://www.shnenglu.com/heath/services/trackbacks/137418.html    浠嶩K涔版潵涓鍙扮櫧鑹瞫lim宸茬粡濂藉嚑涓湀浜嗭紝涓鐩寸帺紕熷瓙鍜屼笅杞芥父鎴忥紝緋葷粺淇濇寔鍦?.5銆傚懆鏈埌鐢靛瓙甯傚満閫涳紝鐪嬬湅浜屾墜紕熷瓙浠鋒牸錛岄殢渚夸篃鐢╀簡鎵嬩笂鏀惰棌浠峰間笉澶х殑娓告垙銆備粠鍑犱釜JS澶勫緱鐭ョ幇鍦ㄤ粬浠兘宸茬粡涓嶈繘鏂扮浜嗭紝鏀朵簩鎵嬬殑涔熷氨鍑犲崄鍧楅挶銆傞儊闂蜂簡鍥炲錛屽喅瀹氳灝忕櫧JB浜嗐傚嵃璞′腑浼間箮JB浠g爜宸茬粡寮婧愶紝鑰屼笖鏈変漢宸茬粡鎶婂畠鏀懼湪Android鎵嬫満涓婁簡錛屽湪緗戜笂鎼滅儲浜嗕竴涓嬶紝鍙互鐢╬sfServiceMod鍒稲ecovery鏉ュ緢鏂逛究鐨勫疄鐜癉G&JB錛屼笅闈㈡槸鎽樿嚜鍒朵綔鑰呭崥瀹紙www.klutsh.com錛変笂鎵嬫満鏀寔鍒楄〃錛?/p>

psfServiceMod Recovery Images

Commtivia Z71 - 0.3.1 祿 3.7 MiB - 55 hits - December 21, 2010

HTC Aria - 0.3.1 祿 3.8 MiB - 35 hits - December 21, 2010

HTC Desire (CDMA) - 0.3.1 祿 3.4 MiB - 74 hits - December 21, 2010

HTC Desire (GSM) - 0.3.1 祿 3.4 MiB - 381 hits - December 21, 2010

HTC Desire HD - 0.3.1 祿 4.2 MiB - 166 hits - December 21, 2010

HTC Desire Z (G2) - 0.3.1 祿 4.3 MiB - 55 hits - December 21, 2010

HTC Dream/Sapphire (32B) - 0.3.1 祿 3.3 MiB - 156 hits - December 21, 2010

HTC Droid Eris - 0.3.1 祿 3.4 MiB - 39 hits - December 21, 2010

HTC Droid Incredible - 0.3.2 祿 3.6 MiB - 75 hits - December 21, 2010

HTC Evo 4G - 0.3.1 祿 3.4 MiB - 109 hits - December 21, 2010

HTC Hero (CDMA) - 0.3.1 祿 3.4 MiB - 75 hits - December 21, 2010

HTC Hero (GSM) - 0.3.1 祿 3.4 MiB - 94 hits - December 21, 2010

HTC Magic/Sapphire (32A) - 0.3.1 祿 3.4 MiB - 73 hits - December 21, 2010

HTC Tattoo - 0.3.1 祿 3.2 MiB - 77 hits - December 21, 2010

HTC Wildfire - 0.3.1 祿 3.6 MiB - 140 hits - December 21, 2010

Motorola Droid - 0.3.1 祿 3.4 MiB - 132 hits - December 21, 2010

Nexus One - 0.3.1 祿 3.4 MiB - 122 hits - December 21, 2010

T-Mobile myTouch 3G Slide - 0.3.1 祿 3.8 MiB - 34 hits - December 21, 2010

T-Mobile myTouch 4G - 0.3.1 祿 4.3 MiB - 30 hits - December 21, 2010

    絎旇呯敤鐨凥TC Magic(32A)涔熷湪鍏朵腑錛屼簬鏄敤fastboot鐨刄SB鏂瑰紡錛堝叧鏈哄悗鎸塒ower+Return榪涘叆鍚庢帴涓奤SB鑷砅C錛屽綋鐒禤C蹇呴』瀹夎Driver錛夊埛浜哛ecovery銆傝繘鍏ecovery妯″紡錛堝叧鏈哄悗鎸塒ower+Home錛夛紝鏂紑USB榪炴帴錛岄夋嫨"PSFreedom settings"榪涘叆鍙戠幇鐢ㄤ簬DG鐨?Put PS3 in Service Mode"銆佺敤浜嶫B鐨?Jailbreak FW 3.41"銆佷互鍙婁粠SD鍗″姞杞絇ayload鐨勫姛鑳介」涓搴斾勘鍏ㄣ?/p>

psfServiceMod

    鍓╀笅鐨勫氨鍜岀敤Dog涓鏍風殑鎿嶄綔鏂瑰紡鏉G&JB浜嗭紝鍊煎緱娉ㄦ剰鐨勬槸鎿嶄綔鏃墮兘闇瑕佹帴鍦ㄥ彸杈筓SB鍙d笂錛圝B鎿嶄綔鎻愮ず鏄帴鍦ㄥ乏杈癸級錛?/p>

  • DG鎿嶄綔
  •     1錛夊叧闂璓S3騫跺垏鏂數婧愶紝閫夋嫨"Put PS3 in Service Mode"榪涘叆錛?/p>

        2錛夊皢鎵嬫満榪炴帴鑷砅S3鍙寵竟USB鍙o紱

        3錛夋墦寮PS3鐢墊簮錛屾寜寮鏈洪敭鍚庤繀閫熸寜鍑轟粨閿紱

        4錛夋墜鏌勮繛鎺ヤ富鏈洪噸鏂伴厤瀵瑰悗錛孭S3榪涘叆Factory/Service Mode錛屽叧闂璓S3錛?/p>

        5錛夋壘涓涓猆鐩橈紙鍙鏄疨S3璇嗗埆鐨凢AT/FAT32鏍煎紡錛屾湭蹇呴渶鏍煎紡鍖栵級鎻掍笂PC錛岃В鍘?.41淇敼鐗堝浐浠訛紝鏈変笁涓枃浠跺す錛氣淟v2diag.self FILE 1鈥濓紝鈥淟v2diag.self FILE 2鈥濆拰鈥淢odified 3.41 PUP鈥濄?灝哃v2diag.self FILE 1涓殑Lv2diag.self浠ュ強Modified 3.41 PUP涓殑PS3UPDAT.PUP鎷瘋礉鍒癠鐩樻牴鐩綍錛?/p>

        6錛夋嫈涓婾鐩樻彃鍏S3鍙寵竟鐨刄SB鍙o紝鎵撳紑PS3錛屽睆騫曟病鏈変換浣曟樉紺猴紝PS3涓繪満鐨勭‖鐩樼伅鍜孶鐩樼殑鎸囩ず鐏細闂儊錛岀瓑寰呭ぇ綰?鍒嗛挓鐩村埌PS3鐢墊簮緇跨伅闂儊騫惰嚜鍔ㄥ叧鏈猴紱

        7錛夋嫈涓婾鐩橈紝PS3姝e父寮鏈猴紝浠嶅湪鏈嶅姟妯″紡錛岀‘璁ょ郴緇熶俊鎭凡緇忓彉鎴?.41銆傦紙濡傞渶緇х畫闄嶇駭鍒版洿浣庣郴緇熺増鏈紝鍕垮垹闄鐩樹笂鐨凩v2diag.self錛屽皢鍏跺畠緋葷粺鐗堟湰PS3UPDATE.PUP鏀懼叆U鐩橈紝閲嶆柊鎵ц涓閬嶆楠?錛夈傝嫢涓嶉渶緇х畫闄嶇駭錛屽叧闂璓S3鐢墊簮錛?/p>

        8錛夊湪PC涓婏紝鍒犻櫎U鐩樹腑鐨凩v2diag.self鍜孭S3UPDAT.PUP涓や釜鏂囦歡錛屾妸Lv2diag.self FILE 2鏂囦歡澶逛腑鐨凩v2diag.self鎷瘋礉鍒癠鐩樻牴鐩綍銆傚皢U鐩樻彃涓奝S3騫跺紑鏈猴紝浠嶇劧榛戝睆錛岀瓑寰?0縐掑悗浼氳嚜鍔ㄥ叧鏈恒傚啀寮鏈猴紝浼氬嚭鐜伴噸鏂拌繛鎺ユ墜鏌勩佹柊寤虹敤鎴風殑鍒濆寮鏈虹敾闈紝瀹屾垚璁劇疆鍚庤繘鍏ョ郴緇熶俊鎭煡鐪嬶紝宸叉槸鏅氱殑3.41緋葷粺浜嗭紝闄嶇駭姝ラ鍏ㄩ儴瀹屾垚銆?/p>

  • JB鎿嶄綔
  •     1錛夊叧闂璓S3騫跺垏鏂數婧愶紝閫夋嫨"Jailbreak FW 3.41"榪涘叆錛?/p>

        2錛夊皢鎵嬫満榪炴帴鑷砅S3鍙寵竟USB鍙o紱

        3錛夋墦寮PS3鐢墊簮錛屾寜寮鏈洪敭鍚庤繀閫熸寜鍑轟粨閿紱

        4錛夌‘璁B鎴愬姛涓庡惁錛屾煡鐪婫ame涓嬮潰鏄惁澶氫簡涓や釜鏂拌彍鍗曢」錛?/p>

        5錛変箣鍚庡氨鍙互鍒?a target="_blank">PS3-Hacks鍘諱笅杞紹ackupManager/OpenManager浜嗐?/p>

        鍏跺疄JB灝辨槸璁㏄S3榪涘叆Debug妯″紡錛屼竴鏃﹁繘鍏ュ悗渚垮彲縐婚櫎JB璁懼銆侾S3鍒欽B閭d細鍎匡紝BackupManager鏄繀澶囧伐鍏鳳紝鍚庨潰鍑虹殑Manager閮芥槸鍦ㄥ叾鍩虹涓婂寮猴紝OpenManager姣擝ackupManager澶氫簡浠庡鎺ョ‖鐩榗opy/play game鐨勫姛鑳姐傛澶朑aia manager涔熸槸涓緢鍙楁榪庣殑Manager錛岄櫎浜嗗湪UI涓婃瘮OpenManager濂界湅涔嬪錛岃繕鍔犲叆浜咲irect Boot/FTP Server絳夊姛鑳斤紝浣咲irect Boot騫朵笉鏄偅涔堝ソ浣匡紝姣斿銆婂繊鑰呴緳鍓戜紶 Sigma2銆嬬敤Gaia灝辮姳灞忔鏈猴紝鐢∣M灝變笉浼氾紝鎬諱綋鎰熻榪樻槸OM鏇寸ǔ瀹氥?/p>

    Reference

    [1] http://www.klutsh.com

    [2] http://www.ps3-hacks.com/

    [3] Simple Tutorial on How to Downgrade and Jailbreak your PS3 with PsfServiceMod

    [4] http://ps3.cngba.com/ps3_xw/20101215119290.shtml



    Heath 2010-12-25 12:34 鍙戣〃璇勮
    ]]>
    Windows涓婸erforce Command Line澶勭悊涓枃鍙傛暟鐨勪袱縐嶆柟娉?/title><link>http://www.shnenglu.com/heath/archive/2010/11/15/133692.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Mon, 15 Nov 2010 09:58:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2010/11/15/133692.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/133692.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2010/11/15/133692.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/133692.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/133692.html</trackback:ping><description><![CDATA[<p>    Windows涓婥ommand Line涓殑涓枃瀛楃鏄噰鐢ˋNSI緙栫爜鏉ュ鐞嗙殑錛岃孭erforce command line瑕佹眰浼犲叆鐨勪腑鏂囧弬鏁幫紙鏂囦歡錛堝す錛夊悕錛変負UTF-8緙栫爜錛屾墍浠ラ渶瑕佸皢涓枃鍙傛暟杞崲涓篣TF-8鍚庡啀鍋氬鐞嗭紝涓嬮潰浠嬬粛涓ょ澶勭悊鏂規硶銆?/p> <p>涓銆佺郴緇熻皟鐢?/p> <p>    閫氳繃浣跨敤WinExec銆丼hellExecute鎴杝ystem錛屽錛?/p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a202efe8-f955-49cf-8f11-16a2b3b1f36b" class="wlWriterEditableSmartContent"><pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"><span style="color: #008080;">_snprintf</span><span style="color: #000000;">(cmdbuf , </span><span style="color: #800080;">1024</span><span style="color: #000000;"> , </span><span style="color: #800000;">"</span><span style="color: #800000;">p4 -c %s add \</span><span style="color: #800000;">"</span><span style="color: #000000;">%</span><span style="color: #000000;">s\</span><span style="color: #800000;">""</span><span style="color: #000000;"> , argv[</span><span style="color: #800080;">1</span><span style="color: #000000;">] , ANSIToUTF8(path.c_str())); system(cmdbuf);</span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p>    姝ゆ柟娉曠殑铏界劧綆鍗曪紝浣嗗瓨鍦ㄦ晥鐜囬棶棰橈紝鍥犱負鏈夊垱寤鴻繘紼嬬殑宸ㄥぇ寮閿銆傛澶栦笉鍚岀増鏈殑Perforce涔熶細鍑虹幇涓嶅悓鐨勬墽琛岀粨鏋滐紝閽堝鐗瑰畾鐨勪腑鏂囦細鍑虹幇鎿嶄綔澶辮觸鐨勮寮傞棶棰樸?/p> <p>浜屻丳erforce SDK</p> <p>    Perforce鎻愪緵鏈塖DK鐢ㄤ互鎵╁睍鎴栭泦鎴愬埌鍏朵粬搴旂敤涓紝铏界劧娌℃湁璇︾粏鐨勬枃妗o紝浣嗗彲浠ラ氳繃瀛︿範SDK涓殑sample鏂囦歡鏉ュ涔狅紝姝ゆ柟娉曟渶紼沖畾銆?/p> <p>    涓嬮潰浠g爜灞曠ず浜嗛氳繃SDK涓瑿lientAPI鏉ラ掑綊娣誨姞鎸囧畾鏂囦歡澶逛笅鐨勬墍鏈夋枃浠訛細</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:891e1b70-295a-4daf-9c0d-8f0ad2ef8b07" class="wlWriterEditableSmartContent"><pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"><span style="color: #000000;">#</span><span style="color: #000000;"> include </span><span style="color: #800000;">"</span><span style="color: #800000;">clientapi.h</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">#</span><span style="color: #000000;"> include </span><span style="color: #800000;">"</span><span style="color: #800000;">i18napi.h</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">#</span><span style="color: #000000;"> include </span><span style="color: #800000;">"</span><span style="color: #800000;">CharSetConvertUtil.h</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">#</span><span style="color: #000000;"> include </span><span style="color: #000000;"><</span><span style="color: #000000;">string</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">#</span><span style="color: #000000;"> include </span><span style="color: #000000;"><</span><span style="color: #000000;">vector</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">#</span><span style="color: #000000;"> include </span><span style="color: #000000;"><</span><span style="color: #000000;">list</span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">#</span><span style="color: #000000;"> include </span><span style="color: #000000;"><</span><span style="color: #000000;">io.h</span><span style="color: #000000;">></span><span style="color: #000000;"> using namespace std; </span><span style="color: #000000;">//</span><span style="color: #000000;"> structure to hold a directory </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> all its filenames. struct FILELIST { string path; vector</span><span style="color: #000000;"><</span><span style="color: #000000;">string</span><span style="color: #000000;">></span><span style="color: #000000;"> theList; }; void TransverseDirectory(string path, list</span><span style="color: #000000;"><</span><span style="color: #000000;">FILELIST</span><span style="color: #000000;">></span><span style="color: #000000;">& theList) { struct </span><span style="color: #008080;">_finddatai</span><span style="color: #000000;">64</span><span style="color: #008080;">_t</span><span style="color: #000000;"> data; string fname </span><span style="color: #000000;">=</span><span style="color: #000000;"> path </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">\\*.*</span><span style="color: #800000;">"</span><span style="color: #000000;">; long h </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #008080;">_findfirsti</span><span style="color: #800080;">64</span><span style="color: #000000;">(fname.c_str(),&data); </span><span style="color: #0000FF;">if</span><span style="color: #000000;">(h </span><span style="color: #000000;">>=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">) { FILELIST thisList; theList.push_back(thisList); list</span><span style="color: #000000;"><</span><span style="color: #000000;">FILELIST</span><span style="color: #000000;">></span><span style="color: #000000;">::iterator it </span><span style="color: #000000;">=</span><span style="color: #000000;"> theList.</span><span style="color: #0000FF;">end</span><span style="color: #000000;">(); it</span><span style="color: #008000;">--</span><span style="color: #008000;">;</span><span style="color: #008000;"> </span><span style="color: #000000;"> (</span><span style="color: #000000;">*</span><span style="color: #000000;">it).path </span><span style="color: #000000;">=</span><span style="color: #000000;"> path; </span><span style="color: #0000FF;">do</span><span style="color: #000000;"> { </span><span style="color: #0000FF;">if</span><span style="color: #000000;">( (data.attrib & </span><span style="color: #008080;">_A_SUBDIR</span><span style="color: #000000;">) ) { </span><span style="color: #000000;">//</span><span style="color: #000000;"> make sure we skip </span><span style="color: #800000;">"</span><span style="color: #800000;">.</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #0000FF;">and</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">..</span><span style="color: #800000;">"</span><span style="color: #000000;">. Have to use strcmp here because </span><span style="color: #000000;">//</span><span style="color: #000000;"> some file names can start with a dot, so just testing </span><span style="color: #0000FF;">for</span><span style="color: #000000;"> the </span><span style="color: #000000;">//</span><span style="color: #000000;"> first dot is </span><span style="color: #0000FF;">not</span><span style="color: #000000;"> suffient. </span><span style="color: #0000FF;">if</span><span style="color: #000000;">( strcmp(data.name,</span><span style="color: #800000;">"</span><span style="color: #800000;">.</span><span style="color: #800000;">"</span><span style="color: #000000;">) !</span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;"> &&strcmp(data.name,</span><span style="color: #800000;">"</span><span style="color: #800000;">..</span><span style="color: #800000;">"</span><span style="color: #000000;">) !</span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">) { </span><span style="color: #000000;">//</span><span style="color: #000000;"> We found a sub</span><span style="color: #000000;">-</span><span style="color: #000000;">directory, so get the files </span><span style="color: #0000FF;">in</span><span style="color: #000000;"> it too fname </span><span style="color: #000000;">=</span><span style="color: #000000;"> path </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">\\</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> data.name; </span><span style="color: #000000;">//</span><span style="color: #000000;"> recurrsion here! TransverseDirectory(fname,theList); } } </span><span style="color: #0000FF;">else</span><span style="color: #000000;"> { </span><span style="color: #000000;">//</span><span style="color: #000000;"> this is just a normal filename. So just add it to our vector (</span><span style="color: #000000;">*</span><span style="color: #000000;">it).theList.push_back(data.name); } }</span><span style="color: #0000FF;">while</span><span style="color: #000000;">( </span><span style="color: #008080;">_findnexti</span><span style="color: #800080;">64</span><span style="color: #000000;">(h,&data) </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">); </span><span style="color: #008080;">_findclose</span><span style="color: #000000;">(h); } } int main( int argc, char </span><span style="color: #000000;">**</span><span style="color: #000000;">argv ) { list</span><span style="color: #000000;"><</span><span style="color: #000000;">FILELIST</span><span style="color: #000000;">></span><span style="color: #000000;"> MyList; string path; ClientUser ui; ClientApi client; StrBuf msg; Error e; </span><span style="color: #0000FF;">if</span><span style="color: #000000;">(argc </span><span style="color: #000000;"><</span><span style="color: #000000;"> </span><span style="color: #800080;">4</span><span style="color: #000000;">) { fprintf( stderr , </span><span style="color: #800000;">"</span><span style="color: #800000;">P4 Transverse Add: Arguments Error!\n</span><span style="color: #800000;">"</span><span style="color: #000000;">); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">; } client.SetPort(argv[</span><span style="color: #800080;">1</span><span style="color: #000000;">]); client.SetClient(argv[</span><span style="color: #800080;">2</span><span style="color: #000000;">]); client.SetTrans(CharSetApi::UTF_8 , CharSetApi::UTF_8 , CharSetApi::UTF_8, CharSetApi::UTF_8); TransverseDirectory(argv[</span><span style="color: #800080;">3</span><span style="color: #000000;">],MyList); </span><span style="color: #000000;">//</span><span style="color: #000000;"> Connect to server client.Init( &e ); </span><span style="color: #0000FF;">if</span><span style="color: #000000;">( e.Test() ) { e.Fmt( &msg ); fprintf( stderr, </span><span style="color: #800000;">"</span><span style="color: #800000;">%s\n</span><span style="color: #800000;">"</span><span style="color: #000000;">, msg.Text() ); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">; } list</span><span style="color: #000000;"><</span><span style="color: #000000;">FILELIST</span><span style="color: #000000;">></span><span style="color: #000000;">::iterator it; </span><span style="color: #0000FF;">for</span><span style="color: #000000;">(it </span><span style="color: #000000;">=</span><span style="color: #000000;"> MyList.begin(); it !</span><span style="color: #000000;">=</span><span style="color: #000000;"> MyList.</span><span style="color: #0000FF;">end</span><span style="color: #000000;">(); it</span><span style="color: #000000;">++</span><span style="color: #000000;">) { vector</span><span style="color: #000000;"><</span><span style="color: #000000;">string</span><span style="color: #000000;">></span><span style="color: #000000;">::iterator its; </span><span style="color: #0000FF;">for</span><span style="color: #000000;">(its </span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #000000;">*</span><span style="color: #000000;">it).theList.begin(); its !</span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #000000;">*</span><span style="color: #000000;">it).theList.</span><span style="color: #0000FF;">end</span><span style="color: #000000;">(); its</span><span style="color: #000000;">++</span><span style="color: #000000;">) { path </span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #000000;">*</span><span style="color: #000000;">it).path </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">\\</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> (</span><span style="color: #000000;">*</span><span style="color: #000000;">its); char</span><span style="color: #000000;">*</span><span style="color: #000000;"> pText </span><span style="color: #000000;">=</span><span style="color: #000000;"> ANSIToUTF8(path.c_str()); client.SetArgv( </span><span style="color: #800080;">1</span><span style="color: #000000;"> , &pText); client.Run( </span><span style="color: #800000;">"</span><span style="color: #800000;">add</span><span style="color: #800000;">"</span><span style="color: #000000;"> , &ui ); } } </span><span style="color: #000000;">//</span><span style="color: #000000;"> Close connection client.Final( &e ); </span><span style="color: #0000FF;">if</span><span style="color: #000000;">( e.Test() ) { e.Fmt( &msg ); fprintf( stderr, </span><span style="color: #800000;">"</span><span style="color: #800000;">%s\n</span><span style="color: #800000;">"</span><span style="color: #000000;">, msg.Text() ); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">; } </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">; }</span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p>    姝ゆ柟娉曠渷鍘諱簡鍒涘緩p4榪涚▼鐨勫紑閿錛屼換鍔℃墽琛屾晥鐜囦細鎻愰珮涓嶅皯錛岃屼笖涔熶笉浼氬嚭鐜版墽琛岀粨鏋滀笉紼沖畾鐨勯棶棰樸?nbsp;   </p> <p> </p> <p>闄勪竴錛歋DK涓嬭澆鍦板潃</p> <p><a title="ftp://ftp.perforce.com/perforce/" href="ftp://ftp.perforce.com/perforce/">ftp://ftp.perforce.com/perforce/</a></p> <p>闄勪簩錛氶檮涓夾NSI杞琔TF-8浠g爜</p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:de1a1357-3f18-424a-bec7-b29768d70f5f" class="wlWriterEditableSmartContent"><pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"><span style="color: #000000;"> wchar_t</span><span style="color: #000000;">*</span><span style="color: #000000;"> ANSIToUnicode( const char</span><span style="color: #000000;">*</span><span style="color: #000000;"> str ) { int textlen ; wchar_t </span><span style="color: #000000;">*</span><span style="color: #000000;"> result; textlen </span><span style="color: #000000;">=</span><span style="color: #000000;"> MultiByteToWideChar( CP_ACP, </span><span style="color: #800080;">0</span><span style="color: #000000;">, str,</span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">, NULL,</span><span style="color: #800080;">0</span><span style="color: #000000;"> ); result </span><span style="color: #000000;">=</span><span style="color: #000000;"> (wchar_t </span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc((textlen</span><span style="color: #000000;">+</span><span style="color: #800080;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">sizeof(wchar_t)); memset(result,</span><span style="color: #800080;">0</span><span style="color: #000000;">,(textlen</span><span style="color: #000000;">+</span><span style="color: #800080;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">sizeof(wchar_t)); MultiByteToWideChar(CP_ACP, </span><span style="color: #800080;">0</span><span style="color: #000000;">,str,</span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">,(LPWSTR)result,textlen ); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> result; } char</span><span style="color: #000000;">*</span><span style="color: #000000;"> UnicodeToANSI( const wchar_t </span><span style="color: #000000;">*</span><span style="color: #000000;">str ) { char </span><span style="color: #000000;">*</span><span style="color: #000000;"> result; int textlen; </span><span style="color: #000000;">//</span><span style="color: #000000;"> wide char to multi char textlen </span><span style="color: #000000;">=</span><span style="color: #000000;"> WideCharToMultiByte( CP_ACP, </span><span style="color: #800080;">0</span><span style="color: #000000;">, str, </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">, NULL, </span><span style="color: #800080;">0</span><span style="color: #000000;">, NULL, NULL ); result </span><span style="color: #000000;">=</span><span style="color: #000000;">(char </span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc((textlen</span><span style="color: #000000;">+</span><span style="color: #800080;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">sizeof(char)); memset( result, </span><span style="color: #800080;">0</span><span style="color: #000000;">, sizeof(char) </span><span style="color: #000000;">*</span><span style="color: #000000;"> ( textlen </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> ) ); WideCharToMultiByte( CP_ACP, </span><span style="color: #800080;">0</span><span style="color: #000000;">, str, </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">, result, textlen, NULL, NULL ); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> result; } wchar_t</span><span style="color: #000000;">*</span><span style="color: #000000;"> UTF8ToUnicode( const char</span><span style="color: #000000;">*</span><span style="color: #000000;"> str ) { int textlen ; wchar_t </span><span style="color: #000000;">*</span><span style="color: #000000;"> result; textlen </span><span style="color: #000000;">=</span><span style="color: #000000;"> MultiByteToWideChar( CP_UTF8, </span><span style="color: #800080;">0</span><span style="color: #000000;">, str,</span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">, NULL,</span><span style="color: #800080;">0</span><span style="color: #000000;"> ); result </span><span style="color: #000000;">=</span><span style="color: #000000;"> (wchar_t </span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc((textlen</span><span style="color: #000000;">+</span><span style="color: #800080;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">sizeof(wchar_t)); memset(result,</span><span style="color: #800080;">0</span><span style="color: #000000;">,(textlen</span><span style="color: #000000;">+</span><span style="color: #800080;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">sizeof(wchar_t)); MultiByteToWideChar(CP_UTF8, </span><span style="color: #800080;">0</span><span style="color: #000000;">,str,</span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">,(LPWSTR)result,textlen ); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> result; } char</span><span style="color: #000000;">*</span><span style="color: #000000;"> UnicodeToUTF8( const wchar_t </span><span style="color: #000000;">*</span><span style="color: #000000;">str ) { char </span><span style="color: #000000;">*</span><span style="color: #000000;"> result; int textlen; </span><span style="color: #000000;">//</span><span style="color: #000000;"> wide char to multi char textlen </span><span style="color: #000000;">=</span><span style="color: #000000;"> WideCharToMultiByte( CP_UTF8, </span><span style="color: #800080;">0</span><span style="color: #000000;">, str, </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">, NULL, </span><span style="color: #800080;">0</span><span style="color: #000000;">, NULL, NULL ); result </span><span style="color: #000000;">=</span><span style="color: #000000;">(char </span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc((textlen</span><span style="color: #000000;">+</span><span style="color: #800080;">1</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">sizeof(char)); memset(result, </span><span style="color: #800080;">0</span><span style="color: #000000;">, sizeof(char) </span><span style="color: #000000;">*</span><span style="color: #000000;"> ( textlen </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;"> ) ); WideCharToMultiByte( CP_UTF8, </span><span style="color: #800080;">0</span><span style="color: #000000;">, str, </span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">, result, textlen, NULL, NULL ); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> result; } char</span><span style="color: #000000;">*</span><span style="color: #000000;"> ANSIToUTF8(const char</span><span style="color: #000000;">*</span><span style="color: #000000;"> str) { wchar_t</span><span style="color: #000000;">*</span><span style="color: #000000;"> pUnicodeBuff </span><span style="color: #000000;">=</span><span style="color: #000000;"> ANSIToUnicode(str); char</span><span style="color: #000000;">*</span><span style="color: #000000;"> pUtf8Buff </span><span style="color: #000000;">=</span><span style="color: #000000;"> UnicodeToUTF8(pUnicodeBuff); free(pUnicodeBuff); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> pUtf8Buff; }</span></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div><img src ="http://www.shnenglu.com/heath/aggbug/133692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2010-11-15 17:58 <a href="http://www.shnenglu.com/heath/archive/2010/11/15/133692.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>&quot;Inception&quot; 綆璇?/title><link>http://www.shnenglu.com/heath/archive/2010/09/05/125961.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sun, 05 Sep 2010 15:02:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2010/09/05/125961.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/125961.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2010/09/05/125961.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/125961.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/125961.html</trackback:ping><description><![CDATA[<p>    涓嶆劎涓衡滃ぉ鎵嶅婕斺濓紝Nolan閫夊彇浜嗕漢浠緢灝戝叧娉ㄧ殑姊﹀浣滀負棰樻潗錛屽埄鐢ㄦⅵ涓ⅵ鐨勯掑綊鎵嬫硶鎷撳浜嗘椂絀烘劅錛岃瑙備紬瑙夊緱褰辯墖寰堟湁鍤煎ご銆傚獎鐗囬灝懼懠搴旓紝涓棿浠ュ叆渚電洰鏍囨ⅵ澧冨茍妞嶅叆涓涓兂娉曚負涓葷嚎錛岄掑綊娣卞害杈懼埌浜?灞傦紝鍙瀵兼紨鐨勭敤蹇冧箣澶勩傛湡闂磋繕絀挎彃鐫涓鏉℃敮綰匡紝閭e氨鏄煰甯冪殑姊﹀錛岃繖涓鐩存槸浠栫殑鐥涳紝鐩村埌鏁呬簨鏈鍚庯紝浠栨墠閲婃銆?/p> <p>    蹇冪悊瀛︿負璇ュ獎鐗囦簡鐞嗚鍩虹錛岀洍姊︾殑鐩殑灝辨槸涓轟簡紿ユ帰鐩爣鍩嬭棌鍦ㄥ績閲岀殑縐樺瘑錛屽洜涓烘ⅵ鏄吉瑁呭緱鏈灝戠殑娼滄剰璇嗚〃鐜般傝屼綔涓鴻繘鍏ョ洰鏍囨ⅵ澧冪殑宸ュ叿錛屽婕斿嵈鏄竴絎斿甫榪囷紝涓嶅緱涓嶈鏄竴涓仐鎲撅紝鍥犺岃褰辯墖涔熷氨鎴愪簡涓閮ㄧ函縐戝夠鐢靛獎銆?/p> <p>    瑙傚獎姣曪紝涓漢鎰熻Dream Design搴旇涔熷拰Game Design鐩鎬技鍚э細鏁呬簨銆佷漢鐗┿佹椂闂淬佸満鏅殑璁捐銆侾rogrammer涔熸繁鍒誨湴娓╀範浜嗕竴涓嬮掑綊鍚с?/p> <p> </p> <p>B.T.W. 澶氬勾浠ユ潵錛岃兘澶熸捈鍔ㄦ垜鎬濇兂鐨勫獎鐗囦粎鏈変袱閮細"The Matrix"鍜?Inception"銆?/p> <p> </p> <p><a href="http://www.shnenglu.com/images/cppblog_com/heath/WindowsLiveWriter/Inception_13B82/Inception_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Inception" border="0" alt="Inception" src="http://www.shnenglu.com/images/cppblog_com/heath/WindowsLiveWriter/Inception_13B82/Inception_thumb.jpg" width="409" height="570"></a></p><img src ="http://www.shnenglu.com/heath/aggbug/125961.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2010-09-05 23:02 <a href="http://www.shnenglu.com/heath/archive/2010/09/05/125961.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Kindle DXGhttp://www.shnenglu.com/heath/archive/2010/08/21/124193.htmlHeathHeathSat, 21 Aug 2010 08:44:00 GMThttp://www.shnenglu.com/heath/archive/2010/08/21/124193.htmlhttp://www.shnenglu.com/heath/comments/124193.htmlhttp://www.shnenglu.com/heath/archive/2010/08/21/124193.html#Feedback2http://www.shnenglu.com/heath/comments/commentRss/124193.htmlhttp://www.shnenglu.com/heath/services/trackbacks/124193.html    Amazon鍦?鏈?鏃ュ彂甯冧簡浠e彿涓篏raphite鐨凨indle DX錛屽悓鏃跺叏闈笅璋僰indle 2鍜宬indle DX鐨勪環鏍箋傚師璁″垝絳塈Pad鍦℉K涓婂競鍚庡幓閭h竟涔扮殑錛屽悗鏉ヨ冭檻鍒頒粎鐢ㄤ簬鐪嬬數瀛愪功錛岃繕鏄疎-INK灞忔瘮杈冨ソ錛屾濂?.7瀵稿睆鐨凨indle DXG涔熻惤鍒頒簡蹇冪悊浠蜂綅錛屼簬鏄喅瀹氬叆鎵嬩箣銆?7鏈?鏃ヤ笅鍗曪紝鏈熼棿閬囦笂浜嗘搗鍏充弗鎵擄紝璐ц鎵d簡2鍛ㄥ悗浜ょ◣鏀捐錛?鏈?0鏃ュ埌鎵嬨備嬌鐢ㄨ繎涓涓湀錛屾諱綋鏉ヨ榪樹笉閿欙細

    1錛塅ree 3G閫熷害蹇紝鐪嬫柊闂繪柟渚匡紱

    2錛夊垎杈ㄧ巼楂橈紝瀛椾綋娓呮櫚錛?/p>

    2錛塏ative PDF Support錛岀炕欏甸熷害宸茬粡寰堝揩浜嗭紝瀵逛簬鍐呭祵涓枃瀛椾綋涔熸湁寰堝ソ鍦版敮鎸併傜湅PDF鏂囨。鏃訛紝9.7瀵稿睆姣?瀵稿睆鏇存槗浜庨槄璇匯俍oom鍔熻兘榪戜箮楦¤倠錛屽洜涓哄緢涓嶅枩嬈㈡媺鐫婊氬姩鏉¢槄璇伙紝鐪嬫壂鎻忎功鐨勬椂鍊欓《澶氱敤涓涓嬫í灞忋傛澶栵紝鐢變簬Kindle浼氭妸棰滆壊杞崲涓虹伆搴︼紝鎵浠ュ浜庨潪綰壊鐨勬枃瀛楋紝浼氭樉寰楀緢娣°?/p>

    3錛夌敱浜嶢mazon灝哅obipocket鏀跺綊鏃椾笅鐨勭紭鏁咃紝鎵浠ュmobi/prc鏂囦歡鏍煎紡鐨勬敮鎸佸拰azw鏍煎紡涓鏍峰ソ錛屾彁渚涙寚璇戙佸瓧浣撶緝鏀俱佹敞閲?絎旇絳夊姛鑳斤紱

    4錛夐氳繃Gift Card鐨勬柟寮忚喘涔扮數瀛愪功涔熸尯鏂逛究錛屽厤鍘諱簡涔扮焊璐ㄤ功鐨勮繍璐瑰拰榪愯緭寤惰繜銆備笉榪囨妧鏈功鐨勭數瀛愮増鏈緢灝戯紝涓斾環鏍兼槀璐碉紱

    5錛夊緟鏈烘椂闂撮暱錛岃繖鏄疎-INK闃呰鍣ㄧ殑涓澶т紭鍔匡紱

    6錛夊姞涓婂師瑁呯毊濂楋紝閲嶉噺鍜屼竴鏈珹4 600欏靛乏鍙崇殑涔﹀樊涓嶅銆?/p>

        瀵逛簬鐢靛瓙涔﹁漿鎹㈠伐鍏鳳紝涓漢鎺ㄨ崘錛歁obipocket鍜孋alibre錛堜粎Mac OS錛夈傚悗鑰呮槸寮婧愮殑錛屽姛鑳藉拰杈撳嚭鏂囦歡璐ㄩ噺鑳滀簬鍓嶈呫?/p>

    image

    image

    image

    image



    Heath 2010-08-21 16:44 鍙戣〃璇勮
    ]]>
    CruiseControl.NET for CI in Game developmenthttp://www.shnenglu.com/heath/archive/2010/08/09/122834.htmlHeathHeathMon, 09 Aug 2010 12:22:00 GMThttp://www.shnenglu.com/heath/archive/2010/08/09/122834.htmlhttp://www.shnenglu.com/heath/comments/122834.htmlhttp://www.shnenglu.com/heath/archive/2010/08/09/122834.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/122834.htmlhttp://www.shnenglu.com/heath/services/trackbacks/122834.html    鏈変釜欏圭洰浣跨敤浜咰ruiseControl.NET錛堜互涓嬬畝縐癈C.NET錛変綔涓烘寔緇泦鎴愬伐鍏鳳紝鍛ㄦ湯鎶界┖鐮旂┒浜嗕竴涓嬶紝鍙戠幇榪欐鐢?b>ThoughtWorks璐$尞鐨勫紑婧愬伐鍏峰姛鑳介潪甯稿己澶э紝涓昏浣撶幇鍦ㄤ笅闈笁涓柟闈細

    1錛夌伒媧匯侀珮鍙厤緗э紝濡傦細澶氶噸緇勫悎鏉′歡瑙﹀彂銆佸浠誨姟闃熷垪絳栫暐錛?

    2錛夊吋瀹圭洰鍓嶅嚑涔庢墍鏈夌殑嫻佽SCM宸ュ叿錛屼嬌寰楀縐嶅紓鏋勭郴緇熻兘澶熺敱CruiseControl.NET緇熶竴鐩戞帶鍜岀鐞嗭紱

    3錛夊畬鍠勭殑浣跨敤鏂囨。錛屼嬌涓婃墜鍜岀淮鎶ゅ彉寰楀鏄擄紱

        鑰岃欏圭洰寮曚互鑷豹鐨勪唬鐮乧heck in瑙﹀彂鏋勫緩鐨勫姛鑳介氳繃CC.NET涔熷緢瀹規槗瀹炵幇銆備箣鍓嶄嬌鐢ㄨ繃Hudson錛岃緋葷粺閲囩敤涓諱粠寮忔灦鏋勶紝浣跨敤鑰呴氳繃緗戦〉璁㎝aster鎺у埗Slave鍔ㄤ綔錛岀敱浜嶮aster鐢卞埆鐨勯儴闂ㄧ鐞嗭紝鍑洪棶棰樺悗闇瑕佽仈緋葷浉鍏充漢瑙e喅錛屼細鏈変竴瀹氱殑澶勭悊寤惰繜錛岃屼笖瀹夎鍦ㄦ瀯寤烘満涓婄殑Slave鏈嶅姟緇忓父宕╂簝銆傝孋C.NET鐩存帴瀹夎鍦ㄦ瀯寤烘満涓婏紝閰嶇疆IIS鍚庡彲閫氳繃緗戦〉鐩存帴璁塊棶錛屾搷浣滅淮鎶ら兘杈冨墠鑰呭鏄撱傜敱浜庝箣鍓嶇殑鏋勫緩鑴氭湰鏄敤VisualBuild瀹炵幇鐨勶紝鎵浠ヤ笉鍙兘鍐嶈姳鏃墮棿鐢–C.NET鍐嶅啓涓閬嶃傝岄氳繃瀹為獙寰楃煡錛屽叾瀹濩C.NET鑳藉浠xecutableTask鐨勫艦寮忓緢濂藉湴涓嶸isualBuild闆嗘垚錛岀洰鍓嶆瘡灝忔椂瀹氭椂鏋勫緩銆丯ightBuild鍜屾瀯寤烘垚鍔熷悗瑙﹀彂鐨勮嚜鍔ㄦ祴璇曢兘宸茬粡鏀懼埌浜咰C.NET涓婁簡銆?

        ccnet.config Example:

    <cruisecontrol xmlns:cb="urn:ccnet.config.builder">
      <queue name="Q1" duplicates="ApplyForceBuildsReAdd" />
      <queue name="Q2" duplicates="ApplyForceBuildsReAdd" />
      <project name="AgileBuild" queue="Q1" queuePriority="1">
        <category>AutoBuild</category>
        <triggers>
          <filterTrigger startTime="18:00" endTime="10:00">
            <trigger type="intervalTrigger" name="Continuous" seconds="1800" buildCondition="ForceBuild" />
            <weekDays>
              <weekDay>Monday</weekDay>
              <weekDay>Tuesday</weekDay>
              <weekDay>Wednesday</weekDay>
              <weekDay>Thursday</weekDay>
              <weekDay>Friday</weekDay>
            </weekDays>
          </filterTrigger>
        </triggers>
        <tasks>
          <exec>
            <executable>VisBuildCmd.exe</executable>
            <buildArgs>E:\GAMEDev\AgileBuilder.bld</buildArgs>
            <baseDirectory>D:\VisBuildPro7</baseDirectory>
            <buildTimeoutSeconds>3000</buildTimeoutSeconds>
          </exec>
        </tasks>
      </project>
      <project name="NightBuild" queue="Q2" queuePriority="1">
        <category>AutoBuild</category>
        <triggers>
          <scheduleTrigger time="23:00" buildCondition="ForceBuild" name="Scheduled">
            <weekDays>
              <weekDay>Monday</weekDay>
              <weekDay>Tuesday</weekDay>
              <weekDay>Wednesday</weekDay>
              <weekDay>Thursday</weekDay>
              <weekDay>Friday</weekDay>
            </weekDays>
          </scheduleTrigger>      
        </triggers>  
        <tasks>
          <exec>
            <executable>VisBuildCmd.exe</executable>
            <buildArgs>"BUILD_OPTION=clientworldeffect" "PACK_TYPE=RAR" E:\GAMEDev\NightBuilder.bld</buildArgs>
            <baseDirectory>D:\VisBuildPro7</baseDirectory>
            <buildTimeoutSeconds>0</buildTimeoutSeconds>
          </exec>
        </tasks>
      </project>
      <project name="NightAutoTest" queue="Q2" queuePriority="2">
        <category>AutoTest</category>
        <triggers>
          <projectTrigger serverUri="tcp://heath-builder:21234/CruiseManager.rem" project="NightBuild">
            <triggerStatus>Success</triggerStatus>
            <innerTrigger type="intervalTrigger" seconds="60" buildCondition="ForceBuild" />
          </projectTrigger>
        </triggers>
        <tasks>
          <exec>
            <executable>VisBuildCmd.exe</executable>
            <buildArgs>E:\GAMEDev\AutoTest.bld</buildArgs>
            <baseDirectory>D:\VisBuildPro7</baseDirectory>
            <buildTimeoutSeconds>0</buildTimeoutSeconds>
          </exec>
        </tasks>
      </project>  
    </cruisecontrol>
    

    References

    [1] http://cruisecontrol.sourceforge.net/

    [2] http://www.kinook.com/VisBuildPro/



    Heath 2010-08-09 20:22 鍙戣〃璇勮
    ]]>
    Lua Insidehttp://www.shnenglu.com/heath/archive/2010/07/18/120686.htmlHeathHeathSun, 18 Jul 2010 04:46:00 GMThttp://www.shnenglu.com/heath/archive/2010/07/18/120686.htmlhttp://www.shnenglu.com/heath/comments/120686.htmlhttp://www.shnenglu.com/heath/archive/2010/07/18/120686.html#Feedback1http://www.shnenglu.com/heath/comments/commentRss/120686.htmlhttp://www.shnenglu.com/heath/services/trackbacks/120686.html涓銆乀able

        Table瀹為檯涓婃槸鏁扮粍鍜屽搱甯岃〃鐨勬販鍚堜綋銆傚綋淇濆瓨浠ヨ繛緇暣鏁頒負绱㈠紩鐨勫唴瀹規椂錛屼嬌鐢ㄦ暟緇勭粨鏋勶紱鑰屽浜庣鏁g儲寮曞強閿煎錛屽垯浣跨敤鍝堝笇琛ㄥ瓨鍌ㄣ傝繖鏍峰仛瀵逛簬絀洪棿鑺傜渷鍜屾煡鎵炬晥鐜囬兘鏄湁濂藉鐨勶紝涓句緥錛?/p>

    tt = {"a" , "b" , "c"}
    print(#tt)  --> 3
    tt[100] = "d"
    print(#tt)    --> 3 (100-"d"閿煎鏀懼叆鍝堝笇琛?
    tt[4] = "e"
    print(#tt)    --> 4

    浜屻丆losure

        Lua鐨勫彉閲忓紩鐢ㄨ鍒欓犳垚浜嗛棴鍖呯殑鍑虹幇錛屽湪Lua涓竴涓鏉傛暟鎹粨鏋勶紙table銆乫unction錛夎璧嬩簣涓涓彉閲忔椂錛屽彉閲忎粎浠呮嬁鍙栧叾寮曠敤銆傝瘯鑰冭檻涓嬮潰浠g爜鐗囨錛?/p>

    local f1 = function() ... end
    local f2 = function() ... end
    local f3 = f1

        鍒ゆ柇f1涓巉2鏄惁鐩哥瓑錛屽緱鍒扮殑緇撴灉涓哄亣錛岃宖3涓巉1鍒欎負鐪熴傝繖鏄洜涓篺1涓巉2寮曠敤浜嗕袱涓笉鍚岀殑鍑芥暟chunk錛堜篃鍙О涓衡滃畾涔夆濓級錛岃宖1鐩存帴灝嗗叾寮曠敤錛堝彲浠ョ湅鎴怌/C++涓殑鍦板潃錛夎祴緇檉3錛屾晠鑰岀浉絳夈?br>鐞嗚В浜嗕笂闈㈤棶棰橈紝鍐嶇湅鐪嬩笅闈㈢殑涓涓嚱鏁幫細

    function createCounter()
        local x = 0
        return function()
            x = x + 1
            print(x)
        end
    end

        閭d箞錛屼笅闈1涓巆2鐩哥瓑鍚楋紵

    c1 = createCounter()
    c2 = createCounter()

        鐢變簬createCounter涓殑return閮ㄥ垎鍒涘緩浜嗕竴涓柊鍑芥暟錛屽洜姝1鍜宑2寮曠敤鐨勫嚱鏁板茍涓嶇浉鍚屻傚洜涓簉eturn鐨勫尶鍚嶅嚱鏁頒腑浣跨敤鍒頒簡澶栭儴鍑芥暟(鍗砪reateCounter)鐨勫眬閮ㄥ彉閲弜錛屾墍浠ua蹇呴』瑕佸湪鏌愪釜鍦版柟淇濆瓨榪欎釜鍙橀噺錛屽張鍥犱負姣忔榪斿洖鐨勯兘鏄竴涓柊鍑芥暟錛屾墍浠ua涓嶈兘鍏變韓createCounter涓殑x錛岃繘鑰孡ua蹇呴』涓烘瘡涓柊鍑芥暟鍒嗛厤涓涓繚瀛榵鐨勫湴鏂癸紝榪欎釜闂瀵艱嚧浜嗛棴鍖呮蹇電殑浜х敓銆?br>    閫氳繃涓婇潰鍒嗘瀽錛屽彲浠ユ槑鐧芥槸璇█鏈哄埗瀵艱嚧浜嗛棴鍖咃紝鑰岀粷闈濴ua浣滆呮晠鎰忓埗閫犲嚭榪欎箞涓涓湅浼兼湁鐐圭縐樼殑涓滆タ銆?br>    涓嬮潰緇欏嚭闂寘鐨勫畾涔夛細涓涓繚鐣欎簡鍒涘緩鏃朵笂涓嬫枃鐨勫嚱鏁般傝寀pvalue鐨勫畾涔夋槸錛氳闂寘璁塊棶鐨勪繚鐣欏彉閲忋傚疄闄呬笂鎵鏈夊湪Lua涓垱寤虹殑鍑芥暟閮芥槸闂寘錛屽湪璁稿鎯呭喌涓嬩粎鏈変竴涓師鍨嬬殑闂寘瀛樺湪錛屽洜涓哄嚱鏁板潡鍙墽琛屼簡涓嬈★紙涔熷彲浠ヨ瀹氫箟浜嗕竴嬈★級銆?

        涓嬮潰浠g爜鐢ㄩ棴鍖呭疄鐜頒簡涓涓璞″伐鍘傦細

    local function CounterFactory()
        local x = 0
        return 
        {
            Increase = function()
                x = x + 1
            end ,
            Decrease = function()
                x = x - 1
            end ,
            GetValue = function()
                return x
            end
        }
    end
    
    local c1 = CounterFactory()
    local c2 = CounterFactory()
    
    c1.Increase()
    c1.Increase()
    print(c1.GetValue())

    涓夈乀ail Call

         棣栧厛闇瑕佹槑紜甒hat is 鈥楾ail Call鈥?鈥斺斿叾褰㈠紡涓衡渞eturn f(鈥?鈥濓紝return璇彞涓殑鍑芥暟璋冪敤浠呴檺浜庡崟涓璋冪敤錛屾秹鍙婂嚱鏁拌繑鍥炲艱繍綆楃殑澶嶅悎琛ㄨ揪寮忎笉鏄熬璋冪敤錛屽錛歳eturn i * f(i - 1)銆傜敱瀹氫箟鍙互鐪嬪嚭灝捐皟鐢ㄥ疄闄呬笂鏄浣嶄簬榪斿洖璇彞涓殑鍑芥暟璋冪敤鐨勪紭鍖栥傞氬父璋冪敤涓涓嚱鏁伴兘闇瑕佸皢鍏朵笂涓嬫枃鍏ユ爤錛岀劧鍚庡啀榪涘叆琚皟鍑芥暟銆傚湪Lua涓墽琛岀鍚堝熬璋冪敤褰㈠紡鐨勫嚱鏁版椂錛屽洜涓鴻鍑芥暟宸茬粡娌℃湁浠g爜闇瑕佹墽琛屼簡錛屾晠浣滆呬綔浜嗕笉淇濆瓨涓婁笅鏂囩殑浼樺寲銆傝繖鏍峰甫鏉ョ殑濂藉鏄細瀵逛簬綺懼績鏋勫緩鐨勯掑綊璋冪敤錛屼笉闇瑕佹湁鏍堢殑娑堣楋紝鍥犺岀粷瀵逛笉浼氬嚭鐜皁verflow錛岀湅鐪嬩笅闈㈤掑綊璋冪敤浜х敓鐨勬寰幆錛?/p>

    local function f(n)
        local i = n + 1
        print(i)
        return f(i)  -- tail call
    end
    
    f(0)

    鍥涖丮etatable

        Metatable甯哥敤鏉ユ墿灞晅able鐨勮涓猴紝閫氳繃setmetatable(table , metatable)灝唌etatable鎸傛帴鍒皌able涓婏紝寰堝寮鍙戣呯敤璇ョ壒鎬ф潵瀹炵幇闈㈠悜瀵硅薄鐨勮璁°侻etatable涓彁渚涗簡Metamethods錛岃繖浜涙柟娉曢兘浠ュ弻涓嬪垝綰縚_寮澶達紝濡傦細

            __add , __call , __concat , __div , __eq , __index...

        浠ヤ笂Metamethods涓紝__index琚皟鐢ㄧ殑鏉′歡鏄細key涓嶅湪瀵瑰簲鐨則able涓傚埄鐢ㄨ鐗規у彲浠ュ疄鐜扮被-瀵硅薄銆佺戶鎵跨瓑闈㈠悜瀵硅薄姒傚康錛屼笅闈㈡槸涓畝鍗曚緥瀛愶細

    local Actor = {}
    Actor.name  = "unnamed"
    Actor.hp    = 100
    Actor.dead  = false
    Actor.level = 1
    Actor.type  = "unknown"
    
    function Actor:Say(text)
        print(self.name..":"..text)
    end
    
    function Actor:IsDead()
        return self.dead
    end
    
    local AttackableActor = setmetatable({ } , { __index = Actor })
    AttackableActor.damage = 20
    
    function AttackableActor:ReceiveHit(attacker)
        self:Say("I'm being attacked by "..attacker.name)
        self.hp = self.hp - attacker.damage
        if self.hp <= 0 then
            self:Say("I'm died :(")
            self.dead = true
        else
            self:Say("My HP is "..self.hp)
        end
    end
    
    function AttackableActor:Attack(target)
        if target.dead == true then
            self:Say("Oh, "..target.name.." has been dead!")
        else
            self:Say("I'm is attacking "..target.name)
            target:ReceiveHit(self)
        end
    end
    
    function CreateMonster(name , damage)
        local m = setmetatable({ } , { __index = AttackableActor})
        m.name = name
        m.damage = damage
        m.type = "monster"
        return m
    end
    
    function CreatePlayer(name , damage)
        local p = setmetatable({ } , { __index = AttackableActor})
        p.name = name
        p.damage = damage
        p.type = "player"
        return p
    end
    
    math.randomseed(os.time())
    
    local boss = CreateMonster("Kerrigan" , math.floor(100 * math.random()))
    local player = CreatePlayer("Raynor" , math.floor(100 * math.random()))
    
    while player:IsDead() == false and boss:IsDead() == false do
        player:Attack(boss)
        boss:Attack(player)
    end

    浜斻丳erformance Tips

        璇峰弬鑰?a target="_blank">Lua Performance Tips

    鍏佹葷粨

        Lua鏄竴闂ㄨ娉曠畝媧侊紝鐢ㄦ硶鐏墊椿鐨勫姩鎬佽璦銆傚湪鍏ㄩ潰鎺屾彙涔嬪悗錛岄渶鎮夊績浣跨敤涔冨彲鏋勯犲嚭綆媧侀珮鏁堢殑浠g爜銆?/p>

    Heath 2010-07-18 12:46 鍙戣〃璇勮
    ]]>
    How to install Mac OS X 10.6.3 on PC from Hard Diskhttp://www.shnenglu.com/heath/archive/2010/05/14/115403.htmlHeathHeathFri, 14 May 2010 13:57:00 GMThttp://www.shnenglu.com/heath/archive/2010/05/14/115403.htmlhttp://www.shnenglu.com/heath/comments/115403.htmlhttp://www.shnenglu.com/heath/archive/2010/05/14/115403.html#Feedback7http://www.shnenglu.com/heath/comments/commentRss/115403.htmlhttp://www.shnenglu.com/heath/services/trackbacks/115403.html闃呰鍏ㄦ枃

    Heath 2010-05-14 21:57 鍙戣〃璇勮
    ]]>
    Enable AHCI mode after installing Windows xphttp://www.shnenglu.com/heath/archive/2010/05/14/115400.htmlHeathHeathFri, 14 May 2010 13:26:00 GMThttp://www.shnenglu.com/heath/archive/2010/05/14/115400.htmlhttp://www.shnenglu.com/heath/comments/115400.htmlhttp://www.shnenglu.com/heath/archive/2010/05/14/115400.html#Feedback0http://www.shnenglu.com/heath/comments/commentRss/115400.htmlhttp://www.shnenglu.com/heath/services/trackbacks/115400.html闃呰鍏ㄦ枃

    Heath 2010-05-14 21:26 鍙戣〃璇勮
    ]]>
    C++璁ょ煡璇尯(1)錛氭垚鍛樹繚鎶ゆ満鍒?/title><link>http://www.shnenglu.com/heath/archive/2010/04/24/113445.html</link><dc:creator>Heath</dc:creator><author>Heath</author><pubDate>Sat, 24 Apr 2010 08:16:00 GMT</pubDate><guid>http://www.shnenglu.com/heath/archive/2010/04/24/113445.html</guid><wfw:comment>http://www.shnenglu.com/heath/comments/113445.html</wfw:comment><comments>http://www.shnenglu.com/heath/archive/2010/04/24/113445.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/heath/comments/commentRss/113445.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/heath/services/trackbacks/113445.html</trackback:ping><description><![CDATA[     鎽樿: 鐢熸椿銆佸伐浣滀腑浼氭湁鍚勭鍚勬牱璁ょ煡璇尯錛屼笌鑷繁璁ょ煡鐩告倴鐨勶紝涓嶄竴瀹氭槸閿欒鐨?nbsp; <a href='http://www.shnenglu.com/heath/archive/2010/04/24/113445.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/heath/aggbug/113445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/heath/" target="_blank">Heath</a> 2010-04-24 16:16 <a href="http://www.shnenglu.com/heath/archive/2010/04/24/113445.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍐欑潃鐜?2)&mdash;&mdash;WoW瑙掕壊璧勬簮璇誨彇http://www.shnenglu.com/heath/archive/2010/04/24/113423.htmlHeathHeathSat, 24 Apr 2010 04:31:00 GMThttp://www.shnenglu.com/heath/archive/2010/04/24/113423.htmlhttp://www.shnenglu.com/heath/comments/113423.htmlhttp://www.shnenglu.com/heath/archive/2010/04/24/113423.html#Feedback2http://www.shnenglu.com/heath/comments/commentRss/113423.htmlhttp://www.shnenglu.com/heath/services/trackbacks/113423.html闃呰鍏ㄦ枃

    Heath 2010-04-24 12:31 鍙戣〃璇勮
    ]]>
    Slerp or Lerphttp://www.shnenglu.com/heath/archive/2010/03/14/109689.htmlHeathHeathSun, 14 Mar 2010 09:54:00 GMThttp://www.shnenglu.com/heath/archive/2010/03/14/109689.htmlhttp://www.shnenglu.com/heath/comments/109689.htmlhttp://www.shnenglu.com/heath/archive/2010/03/14/109689.html#Feedback1http://www.shnenglu.com/heath/comments/commentRss/109689.htmlhttp://www.shnenglu.com/heath/services/trackbacks/109689.htmlUnderstanding Slerp, Then Not Using It瀵筍lerp鐨勮搗婧愬強鎬ц兘鍋氫簡璇︾粏鐨勮璁恒係lerp騫朵笉灞闄愪簬緇存暟錛屽洜鑰屼笉瑕佽涓哄彧瀵筈uaternion鏈夋晥銆備綔鑰呰涓篠lerp浼氬甫鏉ユ晥鐜囬棶棰橈紝鍗充究緇忚繃浼樺寲涔熷茍涓嶈兘杈懼埌鐞嗘兂鐨勯熷害(涓巐erp鍋氭瘮杈冭岃█)錛岃屼笖浼樺寲寰寰浼氶檷浣庝唬鐮佺殑鏄撹鎬с傛枃绔犵粰鍑轟簡涓涓粨璁猴細濡傛灉鎻掑艱繃紼嬩腑鐨勫父閲忛熷害涓嶆槸蹇呴』鐨勶紝閭d箞鏈濂戒嬌鐢ㄧ嚎鎬х殑lerp銆?/p>

    Jason Gregory鍦ㄤ粬鐨勫紩鎿庢灦鏋勮璁′竴涔︿腑涔熺敤鈥淭o SLERP or Not to SLERP (That鈥檚 Still the Question)鈥濅竴灝忚妭浠嬬粛浜嗗紑鍙戣呭Slerp鐨勪簤璁猴紝騫朵粙緇嶄粬鍦∟aughty Dog鐨勫悓浜嬮拡瀵筆S3鐨勪紭鍖栨柟娉曪紝浣縎lerp鍙揪鍒?0鍛ㄦ湡/鍏寵妭錛岀浉姣擫erp鐨?6.25鍛ㄦ湡/鍏寵妭宸茬粡寰堜笉閿欎簡銆?/p>

    涔嬪墠紜疄娌″Slerp鐨勬晥鐜囬棶棰樹綔榪囧鐨勮冭檻錛屽紩鎿庣殑Slerp鐩存帴浣跨敤鐨勬槸D3DXQuaternionSlerp錛孧S搴旇瀵瑰叾鍋氫簡浼樺寲錛屾晥鐜囨庝箞鏍瘋嫻嬩竴涓嬫墠鐭ラ亾浜嗐?/p>

    Heath 2010-03-14 17:54 鍙戣〃璇勮
    ]]>
    青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              欧美凹凸一区二区三区视频| 欧美一级专区| 欧美高清一区二区| 日韩视频一区二区三区| 亚洲国产女人aaa毛片在线| 久久久久国产成人精品亚洲午夜| 国产最新精品精品你懂的| 久久久国产成人精品| 久久久91精品国产| 亚洲国产一成人久久精品| 亚洲精一区二区三区| 国产精品久久久久久久免费软件| 久久激情视频久久| 媚黑女一区二区| 亚洲深夜福利视频| 欧美一区二区三区免费看| 在线观看国产精品网站| 日韩视频三区| 国内精品一区二区三区| 亚洲日本视频| 国产一区视频在线看| 亚洲欧洲精品一区二区三区| 国产精品一区二区在线观看不卡| 免费日韩精品中文字幕视频在线| 欧美另类videos死尸| 久久激情久久| 欧美日本精品一区二区三区| 久久九九免费视频| 欧美日韩情趣电影| 毛片一区二区三区| 国产精品久久久久久影视| 欧美黑人多人双交| 国产女精品视频网站免费| 亚洲国产福利在线| 国外成人在线视频网站| 一区二区久久| 亚洲精品国产精品国自产观看| 香蕉久久一区二区不卡无毒影院| 日韩系列在线| 另类尿喷潮videofree| 欧美一区二区大片| 欧美日韩在线播放三区| 欧美成人亚洲成人日韩成人| 国产欧美日韩一区二区三区| 亚洲精品一二区| 91久久嫩草影院一区二区| 欧美中文字幕在线观看| 性欧美xxxx大乳国产app| 欧美日韩一区二区欧美激情| 亚洲第一区色| 亚洲国产91| 久久激情五月婷婷| 久久精品在线播放| 国产女人aaa级久久久级| 亚洲视频在线观看网站| 亚洲小视频在线| 欧美日韩第一页| 亚洲理论在线观看| 99视频在线观看一区三区| 欧美成人一品| 亚洲高清视频的网址| 亚洲国产午夜| 欧美久久99| 9l国产精品久久久久麻豆| 欧美刺激性大交免费视频| 欧美成人在线影院| 亚洲欧洲精品一区二区三区不卡| 久热re这里精品视频在线6| 美乳少妇欧美精品| 有坂深雪在线一区| 欧美 日韩 国产在线| 亚洲国产欧美精品| 一区二区三区精品视频| 国产精品v日韩精品| 亚洲在线视频| 久久色中文字幕| 91久久精品一区| 欧美日韩不卡视频| 亚洲视频在线视频| 久久亚洲不卡| 亚洲巨乳在线| 欧美性一区二区| 性做久久久久久久久| 麻豆精品国产91久久久久久| 亚洲精品乱码久久久久久| 欧美三级午夜理伦三级中视频| 亚洲男人第一av网站| 农村妇女精品| 亚洲图色在线| 激情文学一区| 欧美日韩亚洲91| 久久精品国产第一区二区三区最新章节| 另类综合日韩欧美亚洲| 中日韩美女免费视频网站在线观看| 国产精品免费一区豆花| 久久久在线视频| 99精品视频免费观看| 久久亚洲高清| 亚洲一区二区视频在线观看| 国产一区二区看久久| 欧美美女bb生活片| 欧美伊人影院| 99re热这里只有精品视频| 久久久久9999亚洲精品| 洋洋av久久久久久久一区| 国产情人节一区| 欧美精品一区二区三区视频| 欧美一区影院| 一本色道久久综合亚洲精品按摩 | 国产精品久久久久久福利一牛影视 | 亚洲激情欧美激情| 国产精品天天摸av网| 免费不卡在线观看av| 亚洲欧美精品在线| 999亚洲国产精| 亚洲高清色综合| 久久综合久久综合这里只有精品| 99视频精品全部免费在线| 激情伊人五月天久久综合| 国产精品入口夜色视频大尺度| 欧美激情亚洲精品| 久久婷婷蜜乳一本欲蜜臀| 亚洲女人天堂av| 中文亚洲免费| 亚洲乱码一区二区| 91久久黄色| 欧美激情一区二区三级高清视频| 久久精品一区二区国产| 午夜视频久久久| 亚洲欧美日本国产专区一区| 日韩一二在线观看| 亚洲青涩在线| 亚洲精品久久久久久久久久久久久| 国产亚洲欧美一区在线观看| 久久精品视频在线播放| 小处雏高清一区二区三区| 中文精品视频一区二区在线观看| 亚洲三级影院| 亚洲日本在线观看| 亚洲区一区二| 亚洲精品国精品久久99热| 亚洲精品123区| 亚洲日本一区二区| 99国产精品久久久久久久成人热| 91久久中文| 99re热这里只有精品视频| 一区二区三欧美| 亚洲综合二区| 香蕉视频成人在线观看| 久久久www成人免费毛片麻豆| 久久久av水蜜桃| 免费久久99精品国产自在现线| 欧美成人国产一区二区| 欧美女激情福利| 国产精品毛片大码女人| 国产欧美日韩不卡免费| 韩国精品久久久999| 亚洲高清在线精品| 一区二区国产精品| 欧美亚洲一区二区三区| 老巨人导航500精品| 亚洲大胆在线| 一区二区不卡在线视频 午夜欧美不卡在 | 另类图片综合电影| 欧美福利在线观看| 亚洲精品一区二区三区樱花| 一区二区三区不卡视频在线观看 | 国语自产在线不卡| 亚洲狠狠丁香婷婷综合久久久| 一区二区三区国产| 校园春色国产精品| 欧美福利网址| 亚洲视频一区在线| 久久青青草原一区二区| 欧美日韩中文字幕在线视频| 国产婷婷精品| 日韩视频一区二区三区在线播放| 亚洲欧美三级在线| 欧美激情第10页| 亚洲欧美www| 欧美国产日本韩| 国产一区二区三区在线观看精品 | 中文久久乱码一区二区| 久久久欧美一区二区| 日韩一级大片| 久久在线精品| 国产农村妇女精品一二区| 亚洲另类在线视频| 久久久噜噜噜久久中文字免 | 久久99伊人| 亚洲精品免费看| 久久久噜噜噜久噜久久| 国产精品久久久久久av下载红粉| 亚洲国产欧美国产综合一区| 欧美主播一区二区三区| 99精品国产高清一区二区 | 亚洲免费视频一区二区| 欧美黄色视屏| 欧美一级欧美一级在线播放| 欧美日韩一区不卡|