<?xml version="1.0" standalone="yes"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>清风的blog - 程序语言</title><link>http://blog.careff.com/</link><description>优然探索 - </description><generator>RainbowSoft Studio Z-Blog 2.2 Prism Build 140101</generator><language>zh-CN</language><copyright>Copyright (C) 2008-2024 careff.com Inc.,All  Rights Reserved.                    雅虎统计      </copyright><pubDate>Tue, 09 Jun 2026 11:28:35 +0800</pubDate><item><title>windows2008 删除文件</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/377.html</link><pubDate>Thu, 12 Sep 2013 19:13:51 +0800</pubDate><guid>http://blog.careff.com/post/377.html</guid><description><![CDATA[<p>@echo off</p><p>rem write to log</p><p>set filename=deletefile.log</p><p>echo -------------------Delete Expired Log Files------------------------- &gt;&gt;%filename%</p><p>echo Start &gt;&gt;%filename%</p><p>echo (%date% %time%) &gt;&gt;%filename%</p><p>echo Delete the expired log files in D:\Users\Administrator\Desktop\2\1, Please wait... &gt;&gt;%filename%</p><p>forfiles.exe /p &quot;D:\Users\Administrator\Desktop\SchoolDB&quot; /s /m *.* /d -2 /c &quot;cmd /c del @path&quot;</p><p>echo End &gt;&gt;%filename%</p><p>echo (%date% %time%) &gt;&gt;%filename%</p><p>&nbsp;</p>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/377.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=377</wfw:commentRss></item><item><title>c# md5函数</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/355.html</link><pubDate>Wed, 13 Mar 2013 10:03:21 +0800</pubDate><guid>http://blog.careff.com/post/355.html</guid><description><![CDATA[<p>&nbsp;&nbsp;public string Encrypt(string str)</p><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string cl = str;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string pwd = &quot;&quot;;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MD5 md5 = MD5.Create();//实例化一个md5对像</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 加密后是一个字节类型的数组，这里要注意编码UTF8/Unicode等的选择　</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 通过使用循环，将字节类型的数组转换为字符串，此字符串是常规字符格式化所得</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i &lt; s.Length; i++)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母，如果使用大写（X）则格式后的字符是大写字符&nbsp;</div><div>&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pwd = pwd + s[i].ToString(&quot;X&quot;);</div><div>&nbsp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return pwd;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/355.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=355</wfw:commentRss></item><item><title>SQL2008删除日志</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/344.html</link><pubDate>Tue, 20 Mar 2012 08:32:20 +0800</pubDate><guid>http://blog.careff.com/post/344.html</guid><description><![CDATA[<p>&nbsp;</p><pre><span style="color: blue">USE [master]<br />GO<br />ALTER DATABASE LcExamNews SET RECOVERY SIMPLE WITH NO_WAIT<br />GO<br />ALTER DATABASE LcExamNews SET RECOVERY SIMPLE --简单模式<br />GO<br />USE LcExamNews<br />GO<br />DBCC SHRINKFILE (N'LcExamNews_Log' , 11, TRUNCATEONLY)<br />GO<br />USE [master]<br />GO</span></pre><pre><span style="color: blue">ALTER DATABASE LcExamNews SET RECOVERY FULL WITH NO_WAIT</span></pre><pre><span style="color: blue">GO</span></pre><pre><span style="color: blue">ALTER DATABASE LcExamNews SET RECOVERY FULL --还原为完全模式</span></pre><pre><span style="color: blue">GO<br /></span></pre>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/344.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=344</wfw:commentRss></item><item><title>更新Web.config</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/223.html</link><pubDate>Sun, 29 Nov 2009 23:18:10 +0800</pubDate><guid>http://blog.careff.com/post/223.html</guid><description><![CDATA[<p>private void UpdateConfig(string KeyName, string Xvalue)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlDocument doc = new XmlDocument();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string sPath = Server.MapPath(&quot;web.config&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Load(sPath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlNode node = doc.SelectSingleNode(@&quot;//add[@key='&quot; + KeyName + &quot;']&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlElement ele = (XmlElement)node;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ele.SetAttribute(&quot;value&quot;, Xvalue);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Save(sPath);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/223.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=223</wfw:commentRss></item><item><title>C#.net 实现MD5加密</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/64.html</link><pubDate>Thu, 11 Sep 2008 10:35:13 +0800</pubDate><guid>http://blog.careff.com/post/64.html</guid><description><![CDATA[<p>using System;<br />using System.Text;</p><p>namespace Encrypter<br />{<br />&nbsp;/// &lt;summary&gt;<br />&nbsp;/// Summary description for MD5.<br />&nbsp;/// &lt;/summary&gt;<br />&nbsp;public class MD5<br />&nbsp;{<br />&nbsp;&nbsp;const int BITS_TO_A_BYTE = 8;<br />&nbsp;&nbsp;const int BYTES_TO_A_WORD = 4;<br />&nbsp;&nbsp;const int BITS_TO_A_WORD = 32; <br />&nbsp;&nbsp;private static long[] m_lOnBits = new long[30 + 1];<br />&nbsp;&nbsp;private static long[] m_l2Power = new long[30 + 1];</p><p>&nbsp;&nbsp;private static long LShift(long lValue, long iShiftBits)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long LShift = 0;<br />&nbsp;&nbsp;&nbsp;if (iShiftBits == 0)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;LShift = lValue;<br />&nbsp;&nbsp;&nbsp;&nbsp;return LShift;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if( iShiftBits == 31)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (Convert.ToBoolean(lValue &amp; 1))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LShift = 0x80000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LShift = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return LShift;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( iShiftBits &lt; 0 || iShiftBits &gt; 31)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Err.Raise 6;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;if (Convert.ToBoolean((lValue &amp; m_l2Power[31 - iShiftBits])))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;LShift = ((lValue &amp; m_lOnBits[31 - (iShiftBits + 1)]) * m_l2Power[iShiftBits]) | 0x80000000;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;LShift = ((lValue &amp; m_lOnBits[31 - iShiftBits]) * m_l2Power[iShiftBits]);<br />&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;return LShift;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long RShift(long lValue, long iShiftBits)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long RShift = 0;<br />&nbsp;&nbsp;&nbsp;if (iShiftBits == 0)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;RShift = lValue;<br />&nbsp;&nbsp;&nbsp;&nbsp;return RShift;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if( iShiftBits == 31)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (Convert.ToBoolean(lValue &amp; 0x80000000))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RShift = 1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RShift = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return RShift;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( iShiftBits &lt; 0 || iShiftBits &gt; 31)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Err.Raise 6;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;RShift = (lValue &amp; 0x7FFFFFFE) / m_l2Power[iShiftBits];</p><p>&nbsp;&nbsp;&nbsp;if (Convert.ToBoolean((lValue &amp; 0x80000000)))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;RShift = (RShift | (0x40000000 / m_l2Power[iShiftBits - 1]));<br />&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;return RShift;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long RotateLeft(long lValue, long iShiftBits)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long RotateLeft = 0;<br />&nbsp;&nbsp;&nbsp;RotateLeft = LShift(lValue, iShiftBits) | RShift(lValue, (32 - iShiftBits));<br />&nbsp;&nbsp;&nbsp;return RotateLeft;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long AddUnsigned(long lX, long lY)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long AddUnsigned = 0;<br />&nbsp;&nbsp;&nbsp;long lX4 = 0;<br />&nbsp;&nbsp;&nbsp;long lY4 = 0;<br />&nbsp;&nbsp;&nbsp;long lX8 = 0;<br />&nbsp;&nbsp;&nbsp;long lY8 = 0;<br />&nbsp;&nbsp;&nbsp;long lResult = 0;<br />&nbsp;&nbsp;&nbsp;lX8 = lX &amp; 0x80000000;<br />&nbsp;&nbsp;&nbsp;lY8 = lY &amp; 0x80000000;<br />&nbsp;&nbsp;&nbsp;lX4 = lX &amp; 0x40000000;<br />&nbsp;&nbsp;&nbsp;lY4 = lY &amp; 0x40000000;</p><p>&nbsp;&nbsp;&nbsp;lResult = (lX &amp; 0x3FFFFFFF) + (lY &amp; 0x3FFFFFFF);<br />&nbsp;&nbsp;&nbsp;if (Convert.ToBoolean(lX4 &amp; lY4))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;lResult = lResult ^ 0x80000000 ^ lX8 ^ lY8;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else if( Convert.ToBoolean(lX4 | lY4))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if (Convert.ToBoolean(lResult &amp; 0x40000000))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lResult = lResult ^ 0xC0000000 ^ lX8 ^ lY8;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lResult = lResult ^ 0x40000000 ^ lX8 ^ lY8;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;lResult = lResult ^ lX8 ^ lY8;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;AddUnsigned = lResult;<br />&nbsp;&nbsp;&nbsp;return AddUnsigned;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long md5_F(long x, long y, long z)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long md5_F = 0;<br />&nbsp;&nbsp;&nbsp;md5_F = (x &amp; y) | (( ~x) &amp; z);<br />&nbsp;&nbsp;&nbsp;return md5_F;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long md5_G(long x, long y, long z)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long md5_G = 0;<br />&nbsp;&nbsp;&nbsp;md5_G = (x &amp; z) | (y &amp; ( ~z));<br />&nbsp;&nbsp;&nbsp;return md5_G;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long md5_H(long x, long y, long z)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long md5_H = 0;<br />&nbsp;&nbsp;&nbsp;md5_H = (x ^ y ^ z);<br />&nbsp;&nbsp;&nbsp;return md5_H;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long md5_I(long x, long y, long z)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long md5_I = 0;<br />&nbsp;&nbsp;&nbsp;md5_I = (y ^ (x | (~z)));<br />&nbsp;&nbsp;&nbsp;return md5_I;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static void md5_FF(ref long a, long b, long c, long d, long x, long s, long ac)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac));<br />&nbsp;&nbsp;&nbsp;a = RotateLeft(a, s);<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, b);<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static void md5_GG(ref long a, long b, long c, long d, long x, long s, long ac)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac));<br />&nbsp;&nbsp;&nbsp;a = RotateLeft(a, s);<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, b);<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static void md5_HH(ref long a, long b, long c, long d, long x, long s, long ac)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac));<br />&nbsp;&nbsp;&nbsp;a = RotateLeft(a, s);<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, b);<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static void md5_II(ref long a, long b, long c, long d, long x, long s, long ac)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac));<br />&nbsp;&nbsp;&nbsp;a = RotateLeft(a, s);<br />&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, b);<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static long[] ConvertToWordArray(string sMessage)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;long[] ConvertToWordArray = null;<br />&nbsp;&nbsp;&nbsp;int lMessageLength = 0;<br />&nbsp;&nbsp;&nbsp;int lNumberOfWords = 0;<br />&nbsp;&nbsp;&nbsp;long[] lWordArray = null;<br />&nbsp;&nbsp;&nbsp;int lBytePosition = 0;<br />&nbsp;&nbsp;&nbsp;int lByteCount = 0;<br />&nbsp;&nbsp;&nbsp;int lWordCount = 0;</p><p>&nbsp;&nbsp;&nbsp;const int MODULUS_BITS = 512;<br />&nbsp;&nbsp;&nbsp;const int CONGRUENT_BITS = 448;</p><p>&nbsp;&nbsp;&nbsp;lMessageLength = sMessage.Length;<br />&nbsp;&nbsp;&nbsp;lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) / BITS_TO_A_BYTE)) / (MODULUS_BITS / BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS / BITS_TO_A_WORD);<br />&nbsp;&nbsp;&nbsp;lWordArray = new long[lNumberOfWords];</p><p>&nbsp;&nbsp;&nbsp;lBytePosition = 0;<br />&nbsp;&nbsp;&nbsp;lByteCount = 0;</p><p>&nbsp;&nbsp;&nbsp;while(lByteCount &lt; lMessageLength)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;lWordCount = lByteCount / BYTES_TO_A_WORD;<br />&nbsp;&nbsp;&nbsp;&nbsp;lBytePosition = (lByteCount % BYTES_TO_A_WORD) * BITS_TO_A_BYTE;<br />&nbsp;&nbsp;&nbsp;&nbsp;lWordArray[lWordCount] = lWordArray[lWordCount] | LShift(Convert.ToByte(sMessage.Substring(lByteCount, 1).ToCharArray()[0]), lBytePosition);<br />&nbsp;&nbsp;&nbsp;&nbsp;lByteCount = lByteCount + 1;<br />&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;lWordCount = lByteCount / BYTES_TO_A_WORD;<br />&nbsp;&nbsp;&nbsp;lBytePosition = (lByteCount % BYTES_TO_A_WORD) * BITS_TO_A_BYTE;<br />&nbsp;&nbsp;&nbsp;lWordArray[lWordCount] = lWordArray[lWordCount] | LShift(0x80, lBytePosition);<br />&nbsp;&nbsp;&nbsp;lWordArray[lNumberOfWords - 2] = LShift(lMessageLength, 3);<br />&nbsp;&nbsp;&nbsp;lWordArray[lNumberOfWords - 1] = RShift(lMessageLength, 29);<br />&nbsp;&nbsp;&nbsp;ConvertToWordArray = lWordArray;</p><p>&nbsp;&nbsp;&nbsp;return ConvertToWordArray;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static string WordToHex(long lValue)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;string WordToHex = &quot;&quot;;<br />&nbsp;&nbsp;&nbsp;long lByte = 0;<br />&nbsp;&nbsp;&nbsp;int lCount = 0;<br />&nbsp;&nbsp;&nbsp;for(lCount = 0; lCount &lt;= 3; lCount++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) &amp; m_lOnBits[BITS_TO_A_BYTE - 1];<br />&nbsp;&nbsp;&nbsp;&nbsp;WordToHex = WordToHex + ((&quot;0&quot; + ToHex(lByte)).Substring((&quot;0&quot; + ToHex(lByte)).Length - 2));<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return WordToHex;<br />&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;private static string ToHex(long dec)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;string strhex = &quot;&quot;;<br />&nbsp;&nbsp;&nbsp;while(dec &gt; 0)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;strhex = tohex(dec % 16) + strhex;<br />&nbsp;&nbsp;&nbsp;&nbsp;dec = dec / 16;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return strhex;<br />&nbsp;&nbsp;}<br />&nbsp; <br />&nbsp;&nbsp;private static string tohex(long hex)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;string strhex = &quot;&quot;;<br />&nbsp;&nbsp;&nbsp;switch(hex)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;case 10: strhex = &quot;a&quot;; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case 11: strhex = &quot;b&quot;; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case 12: strhex = &quot;c&quot;; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case 13: strhex = &quot;d&quot;; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case 14: strhex = &quot;e&quot;; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;case 15: strhex = &quot;f&quot;; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;default : strhex = hex.ToString(); break;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return strhex;<br />&nbsp;&nbsp;}</p><p><br />&nbsp;&nbsp;public static string Encrypt(string sMessage, int stype)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;string MD5 = &quot;&quot;;<br />&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;for(int i=0; i&lt;=30; i++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;m_lOnBits[i] = Convert.ToInt64(Math.Pow(2, i+1) -1);<br />&nbsp;&nbsp;&nbsp;&nbsp;m_l2Power[i] = Convert.ToInt64(Math.Pow(2, i));<br />&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;long[] x = null;<br />&nbsp;&nbsp;&nbsp;int k = 0;<br />&nbsp;&nbsp;&nbsp;long AA = 0;<br />&nbsp;&nbsp;&nbsp;long BB = 0;<br />&nbsp;&nbsp;&nbsp;long CC = 0;<br />&nbsp;&nbsp;&nbsp;long DD = 0;<br />&nbsp;&nbsp;&nbsp;long a = 0;<br />&nbsp;&nbsp;&nbsp;long b = 0;<br />&nbsp;&nbsp;&nbsp;long c = 0;<br />&nbsp;&nbsp;&nbsp;long d = 0;</p><p>&nbsp;&nbsp;&nbsp;const int S11 = 7;<br />&nbsp;&nbsp;&nbsp;const int S12 = 12;<br />&nbsp;&nbsp;&nbsp;const int S13 = 17;<br />&nbsp;&nbsp;&nbsp;const int S14 = 22;<br />&nbsp;&nbsp;&nbsp;const int S21 = 5;<br />&nbsp;&nbsp;&nbsp;const int S22 = 9;<br />&nbsp;&nbsp;&nbsp;const int S23 = 14;<br />&nbsp;&nbsp;&nbsp;const int S24 = 20;<br />&nbsp;&nbsp;&nbsp;const int S31 = 4;<br />&nbsp;&nbsp;&nbsp;const int S32 = 11;<br />&nbsp;&nbsp;&nbsp;const int S33 = 16;<br />&nbsp;&nbsp;&nbsp;const int S34 = 23;<br />&nbsp;&nbsp;&nbsp;const int S41 = 6;<br />&nbsp;&nbsp;&nbsp;const int S42 = 10;<br />&nbsp;&nbsp;&nbsp;const int S43 = 15;<br />&nbsp;&nbsp;&nbsp;const int S44 = 21;</p><p>&nbsp;&nbsp;&nbsp;x = ConvertToWordArray(sMessage);</p><p>&nbsp;&nbsp;&nbsp;a = 0x67452301;<br />&nbsp;&nbsp;&nbsp;b = 0xEFCDAB89;<br />&nbsp;&nbsp;&nbsp;c = 0x98BADCFE;<br />&nbsp;&nbsp;&nbsp;d = 0x10325476;</p><p>&nbsp;&nbsp;&nbsp;for(k = 0; k &lt; x.Length; k += 16)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;AA = a;<br />&nbsp;&nbsp;&nbsp;&nbsp;BB = b;<br />&nbsp;&nbsp;&nbsp;&nbsp;CC = c;<br />&nbsp;&nbsp;&nbsp;&nbsp;DD = d;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref a, b, c, d, x[k + 0], S11, 0xD76AA478);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref d, a, b, c, x[k + 1], S12, 0xE8C7B756);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref c, d, a, b, x[k + 2], S13, 0x242070DB);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref a, b, c, d, x[k + 4], S11, 0xF57C0FAF);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref d, a, b, c, x[k + 5], S12, 0x4787C62A);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref c, d, a, b, x[k + 6], S13, 0xA8304613);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref b, c, d, a, x[k + 7], S14, 0xFD469501);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref a, b, c, d, x[k + 8], S11, 0x698098D8);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref d, a, b, c, x[k + 9], S12, 0x8B44F7AF);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref b, c, d, a, x[k + 11], S14, 0x895CD7BE);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref a, b, c, d, x[k + 12], S11, 0x6B901122);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref d, a, b, c, x[k + 13], S12, 0xFD987193);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref c, d, a, b, x[k + 14], S13, 0xA679438E);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_FF(ref b, c, d, a, x[k + 15], S14, 0x49B40821);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref a, b, c, d, x[k + 1], S21, 0xF61E2562);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref d, a, b, c, x[k + 6], S22, 0xC040B340);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref c, d, a, b, x[k + 11], S23, 0x265E5A51);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref a, b, c, d, x[k + 5], S21, 0xD62F105D);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref d, a, b, c, x[k + 10], S22, 0x2441453);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref c, d, a, b, x[k + 15], S23, 0xD8A1E681);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref a, b, c, d, x[k + 9], S21, 0x21E1CDE6);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref d, a, b, c, x[k + 14], S22, 0xC33707D6);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref c, d, a, b, x[k + 3], S23, 0xF4D50D87);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref b, c, d, a, x[k + 8], S24, 0x455A14ED);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref a, b, c, d, x[k + 13], S21, 0xA9E3E905);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref c, d, a, b, x[k + 7], S23, 0x676F02D9);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_GG(ref b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref a, b, c, d, x[k + 5], S31, 0xFFFA3942);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref d, a, b, c, x[k + 8], S32, 0x8771F681);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref c, d, a, b, x[k + 11], S33, 0x6D9D6122);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref b, c, d, a, x[k + 14], S34, 0xFDE5380C);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref a, b, c, d, x[k + 1], S31, 0xA4BEEA44);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref d, a, b, c, x[k + 4], S32, 0x4BDECFA9);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref c, d, a, b, x[k + 7], S33, 0xF6BB4B60);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref b, c, d, a, x[k + 10], S34, 0xBEBFBC70);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref a, b, c, d, x[k + 13], S31, 0x289B7EC6);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref d, a, b, c, x[k + 0], S32, 0xEAA127FA);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref c, d, a, b, x[k + 3], S33, 0xD4EF3085);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref b, c, d, a, x[k + 6], S34, 0x4881D05);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref a, b, c, d, x[k + 9], S31, 0xD9D4D039);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref d, a, b, c, x[k + 12], S32, 0xE6DB99E5);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref c, d, a, b, x[k + 15], S33, 0x1FA27CF8);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_HH(ref b, c, d, a, x[k + 2], S34, 0xC4AC5665);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref a, b, c, d, x[k + 0], S41, 0xF4292244);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref d, a, b, c, x[k + 7], S42, 0x432AFF97);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref c, d, a, b, x[k + 14], S43, 0xAB9423A7);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref b, c, d, a, x[k + 5], S44, 0xFC93A039);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref a, b, c, d, x[k + 12], S41, 0x655B59C3);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref d, a, b, c, x[k + 3], S42, 0x8F0CCC92);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref c, d, a, b, x[k + 10], S43, 0xFFEFF47D);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref b, c, d, a, x[k + 1], S44, 0x85845DD1);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref a, b, c, d, x[k + 8], S41, 0x6FA87E4F);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref c, d, a, b, x[k + 6], S43, 0xA3014314);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref b, c, d, a, x[k + 13], S44, 0x4E0811A1);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref a, b, c, d, x[k + 4], S41, 0xF7537E82);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref d, a, b, c, x[k + 11], S42, 0xBD3AF235);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);<br />&nbsp;&nbsp;&nbsp;&nbsp;md5_II(ref b, c, d, a, x[k + 9], S44, 0xEB86D391);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;a = AddUnsigned(a, AA);<br />&nbsp;&nbsp;&nbsp;&nbsp;b = AddUnsigned(b, BB);<br />&nbsp;&nbsp;&nbsp;&nbsp;c = AddUnsigned(c, CC);<br />&nbsp;&nbsp;&nbsp;&nbsp;d = AddUnsigned(d, DD);<br />&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;&nbsp;if (stype == 32)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;MD5 = ((((WordToHex(a)) + (WordToHex(b))) + (WordToHex(c))) + (WordToHex(d))).ToLower();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;MD5 = ((WordToHex(b)) + (WordToHex(c))).ToLower();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return MD5;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}</p><p>&nbsp;</p>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/64.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=64</wfw:commentRss></item><item><title>Js地址编码防止中文出错误</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/60.html</link><pubDate>Thu, 11 Sep 2008 10:26:17 +0800</pubDate><guid>http://blog.careff.com/post/60.html</guid><description><![CDATA[<p>字符URL编码：escape()</p><p>字符URL解码：unescape()</p>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/60.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=60</wfw:commentRss></item><item><title>vb.net注册表操作</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/59.html</link><pubDate>Thu, 11 Sep 2008 10:24:44 +0800</pubDate><guid>http://blog.careff.com/post/59.html</guid><description><![CDATA[<p>Public Class RegClass<br />&nbsp; &nbsp; Public Function UpRegData(ByVal IP As String) As Integer<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Try<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;Dim regVersion As Microsoft.Win32.RegistryKey<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;regVersion = _<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Microsoft.Win32.Registry.CurrentUser.OpenSubKey(&quot;要读、写的位置&quot;, True)<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;If regVersion Is Nothing Then<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Return 0&nbsp; &nbsp;&nbsp;&nbsp;'MessageBox.Show(&quot;不存在！&quot;)<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;Else<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; '存在<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; regVersion.SetValue(&quot;要写的项的名称&quot;, &quot;要写的值&quot;)<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Return 1&nbsp;&nbsp;'写入成功<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;End If<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Catch ex As Exception<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;MessageBox.Show(ex.Message)<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;Return -1&nbsp; &nbsp;'出错<br />&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;End Try<br /><br />&nbsp; &nbsp; End Function<br />End Class</p>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/59.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=59</wfw:commentRss></item><item><title>一个VB程序员应具备的基本工具列表</title><author>a@b.com (admin)</author><link>http://blog.careff.com/post/50.html</link><pubDate>Thu, 11 Sep 2008 10:00:49 +0800</pubDate><guid>http://blog.careff.com/post/50.html</guid><description><![CDATA[<p>MsdnVB6.0 For VB 注,迷你Msdn足矣，你会问比如CreateWindow这样的Api去哪里查呢，Api是C的范围，在VB中只是调用，可以通过</p><p>API32.CHM 陈国强整理的,通过里面的中文学习别人是如何翻译英文的方法<br />Msdn2005是查询根源，多数的Api都可以查到方法。</p><p>下载页面&nbsp; <a href="http://www.gougou.com/search?search=Msdn2005&amp;id=0">http://www.gougou.com/search?search=Msdn2005&amp;id=0</a><br />当然找评论最多的那个下载了。</p><p>首先要成为VB中级程序员，你必须熟悉消息机制，具体可以看</p><p><a href="http://www.sunxin.org/video/vc.asp">http://www.sunxin.org/video/vc.asp</a></p><p>Lesson1：Windows程序运行原理及程序编写流程，窗口产生过程，句柄原理，消息队列，回调函数，窗口关闭与应用程序退出的工作关系，使用VC++的若干小技巧，stdcall与cdecl调用规范的比较，初学者常犯错误及注意事项。</p><p>仔细看Lesson1动画几次可以熟悉消息机制和子类化的来源，你说：我不懂Vc++怎么办，记住，没人生下来什么都懂，比尔开发微软时候也是自学的，具备亮剑精神就可以了。</p><p>当然你编程必须还需</p><p>中文spy++</p><p>.net提取的</p><p>有了这个，各位的问题应该少些了，自己spy............</p><p><a href="http://www.vbgood.com/viewthread.php?tid=57926&amp;extra=page%3D1">http://www.vbgood.com/viewthread.php?tid=57926&amp;extra=page%3D1</a></p><p><br />VB程序必备压缩工具</p><p><a href="http://www.vbgood.com/viewthread">http://www.vbgood.com/viewthread</a> ... =page%3D1#pid248191</p><p>VB源码之友</p><p><a href="http://www.vbgood.com/viewthread.php?tid=58124&amp;extra=page%3D1">http://www.vbgood.com/viewthread.php?tid=58124&amp;extra=page%3D1</a></p><p>Visual Basic实用编程标准(PDF)</p><p><a href="http://www.codepub.com/Software/View-Software-1528.html">http://www.codepub.com/Software/View-Software-1528.html</a></p><p>各位如果没规范编程方法的是时候纠正自己错误的习惯了，改的越早，对自己越好，切记，好的习惯终身享用。</p><p>1024个Windows消息</p><p><a href="http://www.vbgood.com/viewthread.php?tid=64084">http://www.vbgood.com/viewthread.php?tid=64084</a></p><p>自编ERRLOOK</p><p><a href="http://www.vbgood.com/viewthread.php?tid=64023">http://www.vbgood.com/viewthread.php?tid=64023</a></p><p>API声明常量补充之源-&gt;&gt;API.net</p><p><a href="http://www.vbgood.com/viewthread.php?tid=63919">http://www.vbgood.com/viewthread.php?tid=63919</a></p><p>MSVB6.0中文企业版，不要装迷你版本，因为你会遇到许多麻烦。</p><p>点这里尽快下载</p><p>金山词霸2007专业版本，这个去百度找破解版本吧。</p><p>当你调试程序你必然要和指针到交道,这两兄弟都需要</p><p>WinHex v14.1 SR-6 简体中文版,文件修改和内存编辑</p><p><a href="http://fixdown.com/china/Application/5845.htm">http://fixdown.com/china/Application/5845.htm</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p>UltraEdit</p><p><a href="http://www.fixdown.com/china/Application/3704.htm">http://www.fixdown.com/china/Application/3704.htm</a></p><p>Winxp自带计算器，切换到16进制方式，有些人喜欢用幻数。</p><p>API中文范例</p><p>本来是绿色版本，由于文件太大我过滤了MSCOMCTL.Ocx，因为我当年打包的时候里面ocx有些是系统没有的，所以加在一起做了绿色版本。这个例子程序的数量应该是当前网上最多的</p><p>本地下载</p><p>VB有许多和Api比拼的函数，用好它们吧</p><p>Visual Basic 语言参考-函数速查</p><p><br />&nbsp;</p>]]></description><category>程序语言</category><comments>http://blog.careff.com/post/50.html#comment</comments><wfw:commentRss>http://blog.careff.com/feed.asp?cmt=50</wfw:commentRss></item></channel></rss>
