﻿<?xml version="1.0" encoding="utf-8" 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>C++博客-张志松-文章分类-原创</title><link>http://www.cppblog.com/Zezese/category/13783.html</link><description>记录工作点滴，留下人生轨迹。</description><language>zh-cn</language><lastBuildDate>Sun, 11 Jul 2010 14:50:18 GMT</lastBuildDate><pubDate>Sun, 11 Jul 2010 14:50:18 GMT</pubDate><ttl>60</ttl><item><title>MyCTI –免费的呼叫中心中间件</title><link>http://www.cppblog.com/Zezese/articles/120073.html</link><dc:creator>张志松</dc:creator><author>张志松</author><pubDate>Sun, 11 Jul 2010 02:50:00 GMT</pubDate><guid>http://www.cppblog.com/Zezese/articles/120073.html</guid><wfw:comment>http://www.cppblog.com/Zezese/comments/120073.html</wfw:comment><comments>http://www.cppblog.com/Zezese/articles/120073.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Zezese/comments/commentRss/120073.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Zezese/services/trackbacks/120073.html</trackback:ping><description><![CDATA[<p><span>使用</span><span>Windows</span><span>自身的脚本语言，易学易用。</span></p>
<p>&nbsp;</p>
<p><span>使用微软的</span><span>TTS</span><span>引擎，可以灵活使用各种</span><span>TTS</span><span>。</span></p>
<p>&nbsp;</p>
<p><span>使用</span><span>ODBC</span><span>数据源，可以使用自己喜欢的数据库。</span></p>
<p>&nbsp;</p>
<p><span><img height=520 alt="" src="http://www.cppblog.com/images/cppblog_com/zezese/mycti.jpg" width=828 border=0></span></p>
<img src ="http://www.cppblog.com/Zezese/aggbug/120073.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Zezese/" target="_blank">张志松</a> 2010-07-11 10:50 <a href="http://www.cppblog.com/Zezese/articles/120073.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows未公开的MD5函数</title><link>http://www.cppblog.com/Zezese/articles/115122.html</link><dc:creator>张志松</dc:creator><author>张志松</author><pubDate>Tue, 11 May 2010 09:49:00 GMT</pubDate><guid>http://www.cppblog.com/Zezese/articles/115122.html</guid><wfw:comment>http://www.cppblog.com/Zezese/comments/115122.html</wfw:comment><comments>http://www.cppblog.com/Zezese/articles/115122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Zezese/comments/commentRss/115122.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Zezese/services/trackbacks/115122.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用Dependency Walker 打开系统目录下的ADVAPI32.DLL，可以发现ADVAPI32.DLL导出了MD5的三个函数：MD5Init，MD5Update，MD5Final。如下图所示：<br><br><img height=392 src="http://www.cppblog.com/images/cppblog_com/zezese/MD5.JPG" width=490 border=0><br><br>这个三个函数的原型如下：<br><br>void WINAPI MD5Init(MD5_CTX* lpCtx);<br>void WINAPI MD5Update(MD5_CTX* lpCtx, const void * lpBuf, unsigned int nLen);<br>void WINAPI MD5Final(MD5_CTX* lpCtx);<br><br>其中MD5_CTX结构体为：<br><br>struct MD5_CTX<br>{<br>&nbsp;ULONG num[2];&nbsp;&nbsp;&nbsp;/* number of _bits_ handled mod 2^64 */<br>&nbsp;ULONG buf[4];&nbsp;&nbsp;&nbsp;/* scratch buffer */<br>&nbsp;BYTE&nbsp; input[64];&nbsp;&nbsp;/* input buffer */<br>&nbsp;BYTE&nbsp; digest[16];&nbsp;&nbsp;/* actual digest after MD5Final call */<br>};<br><br>现在我们用这个三个函数来计算字符串的MD5：<br><br>CString CalcStringMD5(CString strSrc)<br>{<br>&nbsp;MD5_CTX ctx = {0};</p>
<p>&nbsp;MD5Init(&amp;ctx);</p>
<p>&nbsp;MD5Update(&amp;ctx, strSrc.GetBuffer(), strSrc.GetLength());</p>
<p>&nbsp;MD5Final(&amp;ctx);</p>
<p>&nbsp;strSrc.ReleaseBuffer();</p>
<p>&nbsp;TCHAR szTmp[33] = {0};</p>
<p>&nbsp;for (UINT i = 0; i &lt; 16; i++)<br>&nbsp;{<br>&nbsp;&nbsp;wsprintf(szTmp + i * 2, _T("%02x"), ctx.digest[i]);<br>&nbsp;}</p>
<p>&nbsp;CString strMD5 = szTmp;</p>
<p>&nbsp;return strMD5;<br>}</p>
<p><br>该函数只支持多字节编码，UNICODE编码请自行转换，编译需要<a href="http://www.cppblog.com/Files/Zezese/MD5.rar">MD5.lib</a>链接库。以上代码在VS2003+XP下测试成功。</p>
<img src ="http://www.cppblog.com/Zezese/aggbug/115122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Zezese/" target="_blank">张志松</a> 2010-05-11 17:49 <a href="http://www.cppblog.com/Zezese/articles/115122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>