﻿<?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++博客-股票数据格式转换软件，股票数据格式全方位揭秘，黑牛外汇交易系统（稳定盈利）一切尽在http://alantop.5166.info-随笔分类-VC++</title><link>http://www.cppblog.com/alantop/category/1838.html</link><description>股票数据格式转换软件 http://alantop.5166.info 公布股票数据格式文档 稳定盈利的外汇交易系统黑牛外汇交易系统</description><language>zh-cn</language><lastBuildDate>Fri, 21 Dec 2007 08:21:20 GMT</lastBuildDate><pubDate>Fri, 21 Dec 2007 08:21:20 GMT</pubDate><ttl>60</ttl><item><title>谷歌百度一起搜,今天程序打包了.</title><link>http://www.cppblog.com/alantop/archive/2007/09/10/31950.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 10 Sep 2007 08:50:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/09/10/31950.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/31950.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/09/10/31950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/31950.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/31950.html</trackback:ping><description><![CDATA[<a href="http://www.cppblog.com/Files/alantop/setup.rar">/Files/alantop/setup.rar</a><br><br>今天, 把程序打包了.<br>这个程序很多附加功能的.<br>还支持免费的nod杀毒程序升级.<br><br>源码公开:<br><a href="http://www.cppblog.com/alantop/archive/2007/09/04/31523.html">http://www.cppblog.com/alantop/archive/2007/09/04/31523.html</a><br>
<img src ="http://www.cppblog.com/alantop/aggbug/31950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-09-10 16:50 <a href="http://www.cppblog.com/alantop/archive/2007/09/10/31950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UDP测试工具(ace版本)</title><link>http://www.cppblog.com/alantop/archive/2007/09/07/31749.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Fri, 07 Sep 2007 06:15:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/09/07/31749.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/31749.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/09/07/31749.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/31749.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/31749.html</trackback:ping><description><![CDATA[<p>这几天,再用udp测试程序,把以前的udp程序简单封装一下,搞个测试工具.
<p>基本功能都全了. 发上来共享下.
<p>&nbsp;
<p>程序使用ACE.
<p>ACE的简介:
<p><a title=http://www.cs.wustl.edu/~schmidt/ACE-overview.html href="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">http://www.cs.wustl.edu/~schmidt/ACE-overview.html</a>
<p>&nbsp;
<p>udp测试工具:
<p>功能描述
<p>1.纯发送功能<br>udp 192.168.1.22:9000 c:\bootbak.ini 将文件c:\bootbak.ini发送到192.168.1.22
<p>2.纯接收功能<br>udp 9000&nbsp; 接收9000端口udp数据
<p>3.转发功能<br>udp 9000 192.168.1.22:9000 forward 本地端口9000接收,发往192.168.1.22:900端口
<p>4.要保存文件只需要在命令行后加 &gt; result.txt即可.
<p>&nbsp;
<p>可执行文件和源码. <a href="http://www.cppblog.com/Files/alantop/udp.rar">/Files/alantop/udp.rar</a><br><br><br>再放一个老版本 win32 sdk版本的udp</p>
<p><a href="http://www.cppblog.com/Files/alantop/UdpDHCP.rar">/Files/alantop/UdpDHCP.rar</a></p>
<img src ="http://www.cppblog.com/alantop/aggbug/31749.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-09-07 14:15 <a href="http://www.cppblog.com/alantop/archive/2007/09/07/31749.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络编程常用知识</title><link>http://www.cppblog.com/alantop/archive/2007/09/04/31547.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Tue, 04 Sep 2007 04:39:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/09/04/31547.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/31547.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/09/04/31547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/31547.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/31547.html</trackback:ping><description><![CDATA[<p>1. 如何获取主机名 <p>2. 如何从域名获取IP地址 <p>3. 如何从struct in_addr和struct hostent结构中获取IP地址 <p>&nbsp;&nbsp;&nbsp; WORD wVersionRequested;<br>&nbsp;&nbsp;&nbsp; WSADATA wsaData;<br>&nbsp;&nbsp;&nbsp; int err;<br>&nbsp;&nbsp;&nbsp; wVersionRequested = MAKEWORD( 2, 2 );<br>&nbsp;&nbsp;&nbsp; err = WSAStartup( wVersionRequested, &amp;wsaData );<br>&nbsp;&nbsp;&nbsp; if ( err != 0 ) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Tell the user that we could not find a usable */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* WinSock DLL.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return FALSE;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; /* Confirm that the WinSock DLL supports 2.2.*/<br>&nbsp;&nbsp;&nbsp; /* Note that if the DLL supports versions greater&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; /* than 2.2 in addition to 2.2, it will still return */<br>&nbsp;&nbsp;&nbsp; /* 2.2 in wVersion since that is the version we&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; /* requested.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; if ( LOBYTE( wsaData.wVersion ) != 2 ||<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HIBYTE( wsaData.wVersion ) != 2 ) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Tell the user that we could not find a usable */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* WinSock DLL.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WSACleanup( );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return FALSE; <br>&nbsp;&nbsp;&nbsp; }  <p>&nbsp;&nbsp;&nbsp; char hostname[255];  <p>&nbsp;&nbsp;&nbsp; struct hostent *hst = gethostbyname(<a href="http://www.126.com">www.126.com</a>) ;<br>&nbsp;&nbsp;&nbsp; struct&nbsp;&nbsp; in_addr&nbsp;&nbsp; ia;&nbsp;  <p>&nbsp;&nbsp;&nbsp; if(hst&nbsp;&nbsp; !=&nbsp;&nbsp; NULL)&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memcpy(&amp;ia.s_addr,hst-&gt;h_addr_list[0],sizeof(ia.s_addr));&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp; iIpLength&nbsp;&nbsp; =&nbsp;&nbsp; strlen(inet_ntoa(ia))&nbsp;&nbsp; +&nbsp;&nbsp; 1;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char*&nbsp;&nbsp; lpcIp&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; char[iIpLength];&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZeroMemory(lpcIp,iIpLength);&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strcpy(lpcIp,inet_ntoa(ia));&nbsp;&nbsp;  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete []lpclp; <p>&nbsp; }  <p>&nbsp;&nbsp;&nbsp; int i = gethostname(hostname, 255);  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WSACleanup( );</p><img src ="http://www.cppblog.com/alantop/aggbug/31547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-09-04 12:39 <a href="http://www.cppblog.com/alantop/archive/2007/09/04/31547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vc中的xml开发</title><link>http://www.cppblog.com/alantop/archive/2007/09/04/31546.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Tue, 04 Sep 2007 04:07:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/09/04/31546.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/31546.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/09/04/31546.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/31546.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/31546.html</trackback:ping><description><![CDATA[<p><strong>1. libxml是一个跨平台库. 基于C语言的xml解析器.</strong></p> <p>其主页和网上内容很多,这里整理一下.</p> <p>libxml源码示例:<a title="http://xmlsoft.org/examples/index.html" href="http://xmlsoft.org/examples/index.html">http://xmlsoft.org/examples/index.html</a></p> <p>libxml参考手册:<a title="http://xmlsoft.org/html/index.html" href="http://xmlsoft.org/html/index.html">http://xmlsoft.org/html/index.html</a></p> <p>主页: <a title="http://xmlsoft.org/" href="http://xmlsoft.org/">http://xmlsoft.org/</a></p> <p>一个很详细的教程:<a title="http://hi.baidu.com/%CE%DA%D1%BB%C3%F7/blog/item/06df91547c79171e3a29358e.html" href="http://hi.baidu.com/%CE%DA%D1%BB%C3%F7/blog/item/06df91547c79171e3a29358e.html"><a title="http://blog.chinaunix.net/u/14063/showart_98851.html" href="http://blog.chinaunix.net/u/14063/showart_98851.html">http://blog.chinaunix.net/u/14063/showart_98851.html</a></a></p> <p>&nbsp;</p> <p><strong>2. 利用msxml4.0 sp2解析xml</strong></p> <p><a title="http://blog.csdn.net/max2008/archive/2007/06/11/1647613.aspx" href="http://blog.csdn.net/max2008/archive/2007/06/11/1647613.aspx">http://blog.csdn.net/max2008/archive/2007/06/11/1647613.aspx</a></p> <p>&nbsp;</p> <p><strong>3.cmarkup</strong></p> <p><strong>Homepage: <a href="http://www.firstobject.com/">http://www.firstobject.com/</a> </strong></p> <p><a title="http://www.cnblogs.com/bingxuefly/archive/2007/04/23/724318.html" href="http://www.cnblogs.com/bingxuefly/archive/2007/04/23/724318.html">http://www.cnblogs.com/bingxuefly/archive/2007/04/23/724318.html</a></p><img src ="http://www.cppblog.com/alantop/aggbug/31546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-09-04 12:07 <a href="http://www.cppblog.com/alantop/archive/2007/09/04/31546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谷歌百度一起搜程序源码</title><link>http://www.cppblog.com/alantop/archive/2007/09/04/31523.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Tue, 04 Sep 2007 01:16:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/09/04/31523.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/31523.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/09/04/31523.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/31523.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/31523.html</trackback:ping><description><![CDATA[以前 都是在用网上找的google百度 或者其他之类的,发现经常不稳定.<br>所以 自己动手写了一个.<br><br>一直在用很爽.发上来 共享下. 用了这个程序后,明显发现google速度明显比百度慢.<br><br>源码:<a href="http://www.cppblog.com/Files/alantop/Dsearch20070904.rar">/Files/alantop/Dsearch20070904.rar</a><br>程序抓图:<br><img style="WIDTH: 567px; HEIGHT: 608px" height=608 alt="" src="http://www.cppblog.com/images/cppblog_com/alantop/dsearch.JPG" width=567 border=0><br>
<img src ="http://www.cppblog.com/alantop/aggbug/31523.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-09-04 09:16 <a href="http://www.cppblog.com/alantop/archive/2007/09/04/31523.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何进行Unicode编程？</title><link>http://www.cppblog.com/alantop/archive/2007/08/31/31298.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Fri, 31 Aug 2007 06:06:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/31/31298.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/31298.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/31/31298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/31298.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/31298.html</trackback:ping><description><![CDATA[1. 要用char的时候用 TCHAR代替。<br>2.用到字符串函数的时候查msdn找相应的版本。<br>3.常量字符用_T或者_TEXT<br><br>还有编译器要记得设置。<br>
<img src ="http://www.cppblog.com/alantop/aggbug/31298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-31 14:06 <a href="http://www.cppblog.com/alantop/archive/2007/08/31/31298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何检测GDI资源的泄漏。</title><link>http://www.cppblog.com/alantop/archive/2007/08/30/31204.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 30 Aug 2007 06:47:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/30/31204.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/31204.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/30/31204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/31204.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/31204.html</trackback:ping><description><![CDATA[&nbsp;
<div class=Section0>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify">内存泄漏，MFC提供机制去检测，但是GDI资源的泄漏，确实无法通过基础机制去检测的。<br><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face=宋体><br>这里提供一个检测和定位GDI泄漏的程序</font></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face=宋体>介绍：</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face=宋体>一个容易使用，强大，高效检测和定位GDI泄漏的工具。它可以在visual&nbsp;studio中使用</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face=宋体>关于工具的机制：</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><font face=宋体>工具有两个部分GdiLeakDtector.exe和GdiSpy.dll</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">GdiLeakDtector.exe<font face=宋体>是一个特殊的调试器，它在debug模式下载入进程，并将GdiSpy.dll注入调试程序。GdiSpy将截获GDI的调用和释放到日志。这样，就可能发现泄漏的资源。它有误报的可能性。因为在程序有可能在GdiSpy.dll释放后，在释放GDI资源。不过这个误报很容易被发现。不是个大问题。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'">Memleak.exe&nbsp;&nbsp;<font face=宋体>是一个内存泄漏的测试程序。</font></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><img alt="" src="http://www.cppblog.com/images/cppblog_com/alantop/wps_clip_image1.gif" border=0><br>附件 ：<a href="http://www.cppblog.com/Files/alantop/release.rar">/Files/alantop/release.rar</a><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class=0 style="LAYOUT-GRID-MODE: char; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
</div>
<!--endfragment-->
<img src ="http://www.cppblog.com/alantop/aggbug/31204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-30 14:47 <a href="http://www.cppblog.com/alantop/archive/2007/08/30/31204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个微软没有公布的提取,分割字符串的函数-超级好用</title><link>http://www.cppblog.com/alantop/archive/2007/08/17/30242.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Fri, 17 Aug 2007 06:08:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/17/30242.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/30242.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/17/30242.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/30242.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/30242.html</trackback:ping><description><![CDATA[<p>123 456 789 012 345</p> <p>大家经常要用到把上面的这个字符串按照空格分割.</p> <p>以前也是自己写分割函数.</p> <p>今天,无意看到微软其实自带这个函数的,不过没有公布而已.</p> <p>这个函数就是AfxExtractSubString, 其所在头文件AFXWIN.H</p> <p>函数原型 </p> <p>BOOL AFXAPI AfxExtractSubString(CString&amp; rString, LPCTSTR lpszFullString,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iSubString, TCHAR chSep = '\n'); <p>举个例子: <p>CString strTestBuf = "123456789,12345678,123456789,";<br>CString strTempsave;<br>AfxExtractSubString(strTempsave,strTestBuf,&nbsp; 0, ','); <img src ="http://www.cppblog.com/alantop/aggbug/30242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-17 14:08 <a href="http://www.cppblog.com/alantop/archive/2007/08/17/30242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通达信股票分析软件日线数据格式-股票数据格式大全，股票数据格式分析 http://alantop.5166.info</title><link>http://www.cppblog.com/alantop/archive/2007/08/16/30130.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 16 Aug 2007 02:05:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/16/30130.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/30130.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/16/30130.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/30130.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/30130.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 通达信股票分析软件日线数据格式-股票数据格式大全，股票数据格式分析 http://alantop.5166.info&nbsp;&nbsp;<a href='http://www.cppblog.com/alantop/archive/2007/08/16/30130.html'>阅读全文</a><img src ="http://www.cppblog.com/alantop/aggbug/30130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-16 10:05 <a href="http://www.cppblog.com/alantop/archive/2007/08/16/30130.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vs2005下安装boost</title><link>http://www.cppblog.com/alantop/archive/2007/08/15/30071.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Wed, 15 Aug 2007 05:23:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/15/30071.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/30071.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/15/30071.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/30071.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/30071.html</trackback:ping><description><![CDATA[<p>今天 看了boost主页上的一些介绍。</p> <p>发现其安装比原来简单了不少。不用自己编译，只需要下了二进制包</p> <p>进行简单设置就好。</p> <p>&nbsp;</p> <p>安装一下试试。</p> <p><a href="http://www.cppblog.com/images/cppblog_com/alantop/WindowsLiveWriter/vs2005boost_BB66/boost01.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="313" alt="boost01" src="http://www.cppblog.com/images/cppblog_com/alantop/WindowsLiveWriter/vs2005boost_BB66/boost01_thumb.jpg" width="408" border="0"></a> </p> <p>&nbsp;</p> <p> <a href="http://www.cppblog.com/images/cppblog_com/alantop/WindowsLiveWriter/vs2005boost_BB66/boost02.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="105" alt="boost02" src="http://www.cppblog.com/images/cppblog_com/alantop/WindowsLiveWriter/vs2005boost_BB66/boost02_thumb.jpg" width="408" border="0"></a></p> <p>&nbsp;</p> <p>安装包是现下现安装。 这个只是其中的一个软件包，要全部下完，我这里要十多个小时。</p> <p>等不了了。要是国内有镜像站点就好了。</p> <p>&nbsp;</p> <p>我还是先源码自己编译好了。</p><img src ="http://www.cppblog.com/alantop/aggbug/30071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-15 13:23 <a href="http://www.cppblog.com/alantop/archive/2007/08/15/30071.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vc++如何调用.Ner Framewrok类库 （ 读写注册表示例）（CLI的一些应用）</title><link>http://www.cppblog.com/alantop/archive/2007/08/02/29207.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 02 Aug 2007 08:33:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/02/29207.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/29207.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/02/29207.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/29207.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/29207.html</trackback:ping><description><![CDATA[<p>.net Framework类库越来越丰富了。伴随vs2008已经3.5版本了。  <p>以前写程序很少会去调用.net framework，不过随着微软的主推，和不断对其进行扩展。  <p>其功能正在逐渐强大，使用更加简洁和方便。  <p>这里通过对注册表的操作。我们来看看vc++.net程序。  <p>说明：以下代码在vs2005下编译。  <p>简单的说传统的c++如何调用net frame.  <p>一些预备知识：  <p>^:vc2005下，声明托管堆（the managed heap）上对象的句柄。  <p>在vc++2002和vc++2003下，声明托管堆上对象的句柄是用“__gc *”表示。  <p>为什么会出现"^"符号呢？  <p>在netframe下，为了保持托管堆上的对象的引用能够被垃圾收集器跟踪，且当这个对象被移动的时候，这个句柄可以被及时的更新。而传统的指针和引用无法被正确跟踪，所以产生了^来表示一个托管堆上对象的句柄。  <p>其可以用-&gt;来访问其成员。  <p>&nbsp;  <p>什么时候用 ^ 呢？  <p>来看看RegisterKey的声明<pre>[ComVisibleAttribute(true)] 
public ref class RegistryKey sealed : public MarshalByRefObject, IDisposable</pre><pre>&nbsp;</pre><pre>看到ref了吧，</pre><pre>ref:声明一个托管类或者结构。</pre><pre>看到它，就声明^</pre><pre>&nbsp;</pre><pre>以下三个例子应该很容易看懂了。</pre><pre>&nbsp;</pre>
<p>1. 将数据写入注册表 
<p>using namespace System;<br>using namespace Microsoft::Win32; 
<p>int main()<br>{<br>&nbsp;&nbsp;&nbsp; // The second OpenSubKey argument indicates that<br>&nbsp;&nbsp;&nbsp; // the subkey should be writable. <br>&nbsp;&nbsp;&nbsp; RegistryKey^ rk;</p>
<p>//托管堆上的一个句柄<br>&nbsp;&nbsp;&nbsp; rk&nbsp; = Registry::CurrentUser-&gt;OpenSubKey("Software", true);</p>
<p>//静态成员可以通过其类名直接访问<br>&nbsp;&nbsp;&nbsp; if (!rk)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console::WriteLine("Failed to open CurrentUser/Software key");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; RegistryKey^ nk = rk-&gt;CreateSubKey("NewRegKey");<br>&nbsp;&nbsp;&nbsp; if (!nk)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console::WriteLine("Failed to create 'NewRegKey'");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp; } </p>
<p>&nbsp;&nbsp;&nbsp; String^ newValue = "NewValue";<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nk-&gt;SetValue("NewKey", newValue);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nk-&gt;SetValue("NewKey2", 44);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception^)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console::WriteLine("Failed to set new values in 'NewRegKey'");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp; } 
<p>&nbsp;&nbsp;&nbsp; Console::WriteLine("New key created.");<br>&nbsp;&nbsp;&nbsp; Console::Write("Use REGEDIT.EXE to verify ");<br>&nbsp;&nbsp;&nbsp; Console::WriteLine("'CURRENTUSER/Software/NewRegKey'\n");*/<br>&nbsp;&nbsp;&nbsp; return 0;<br>} 
<p>2. 从注册表中读取数据<pre>using namespace System;
using namespace Microsoft::Win32;

int main( )
{
   array&lt;String^&gt;^ key = Registry::CurrentUser-&gt;GetSubKeyNames( );

   Console::WriteLine("Subkeys within CurrentUser root key:");
   for (int i=0; i&lt;key-&gt;Length; i++)
   {
      Console::WriteLine("   {0}", key[i]);
   }

   Console::WriteLine("Opening subkey 'Identities'...");
   RegistryKey^ rk = nullptr;
   rk = Registry::CurrentUser-&gt;OpenSubKey("Identities");
   if (rk==nullptr)
   {
      Console::WriteLine("Registry key not found - aborting");
      return -1;
   }

   Console::WriteLine("Key/value pairs within 'Identities' key:");
   array&lt;String^&gt;^ name = rk-&gt;GetValueNames( );
   for (int i=0; i&lt;name-&gt;Length; i++)
   {
      String^ value = rk-&gt;GetValue(name[i])-&gt;ToString();
      Console::WriteLine("   {0} = {1}", name[i], value);
   }

   return 0;
}</pre><pre>&nbsp;</pre><pre>3. 从注册表中删除subkey.</pre><pre>&nbsp;</pre>&nbsp;&nbsp;&nbsp; RegistryKey^ rk;<br>&nbsp;&nbsp;&nbsp; rk&nbsp; = Registry::CurrentUser-&gt;OpenSubKey("Software", true);<br>&nbsp;&nbsp;&nbsp; if (!rk)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console::WriteLine("Failed to open CurrentUser/Software key");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; rk-&gt;DeleteSubKey("NewRegKey"); 
<p>&nbsp; 
<p>&nbsp;
<p>写在后面的话：
<p>之所有写这个标题，而不写有关CLI的，国内关于cli探讨还是比较少的。
<p>既然，有人有好的建议，加一个副标题好了。
<img src ="http://www.cppblog.com/alantop/aggbug/29207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-02 16:33 <a href="http://www.cppblog.com/alantop/archive/2007/08/02/29207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用c++，写小型病毒</title><link>http://www.cppblog.com/alantop/archive/2007/08/02/29167.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 02 Aug 2007 00:12:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/02/29167.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/29167.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/02/29167.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/29167.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/29167.html</trackback:ping><description><![CDATA[<p>这个只是为了学习，要是搞破坏的请走开。</p>
<p>通过代码片段我们展示一些病毒行为。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>1. 建立线程运行其他可执行文件</p>
<p>2.关闭任务管理器或者其他窗口</p>
<p>3.ShellExecute的用法</p>
<p>4.打开关闭显示器</p>
<p>5.使鼠标乱跑</p>
<p>&nbsp;</p>
<p>1. 建立一个线程 （ CreateThread() ）<br></p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">DWORD&nbsp;WINAPI&nbsp;DestroyWindows(LPVOID)&nbsp;<br><br>{&nbsp;<br><br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">your&nbsp;code&nbsp;would&nbsp;go&nbsp;here&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>}&nbsp;<br><br>int&nbsp;main()&nbsp;<br><br>{&nbsp;<br><br>CreateThread(&nbsp;</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;(LPTHREAD_START_ROUTINE)</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">DestroyWindows</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">);&nbsp;<br><br></span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;<br><br>{&nbsp;<br><br></span><span style="COLOR: #008080">Sleep</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);&nbsp;<br><br>}&nbsp;<br><br>}&nbsp;<br></span></div>
<p>&nbsp;
<p>2. 关闭任务管理器或者其他窗口<br></p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">TaskMgr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;FindWindow(</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Windows&nbsp;Task&nbsp;Manager</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;<br><br></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;TaskMgr&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">&nbsp;)&nbsp;<br><br>{&nbsp;<br><br>PostMessage(&nbsp;TaskMgr</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;WM_CLOSE</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;(LPARAM)</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;(WPARAM)</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);&nbsp;<br><br>}&nbsp;<br></span></div>
<p>&nbsp;
<p>程序发出关闭任务管理器的的消息，并不等待继续执行下面的代码</p>
<p>3. ShellExcute </p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">char&nbsp;Notepad[MAX_PATH]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">notepad.exe</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;&nbsp;<br><br>ShellExecute(</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">open</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">Notepad</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">NULL</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">SW_MAXIMIZE);&nbsp;<br></span></div>
<p>&nbsp;
<p>打开记事本。也可以通过以下代码打开google.<br></p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">char&nbsp;Website[MAX_PATH]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">http:\\www.google.com</span></div>
<p>&nbsp;</p>
<p>4. 打开关闭显示器</p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">SendMessage(HWND_BROADCAST</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;WM_SYSCOMMAND</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;SC_MONITORPOWER</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;(LPARAM)&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);&nbsp;<br><br></span><span style="COLOR: #008080">Sleep</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">5000</span><span style="COLOR: #000000">);&nbsp;<br><br>SendMessage(HWND_BROADCAST</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;WM_SYSCOMMAND</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;SC_MONITORPOWER</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;(LPARAM)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);&nbsp;<br></span></div>
<p>&nbsp;
<p>5. 鼠标乱跑</p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">X&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008080">rand</span><span style="COLOR: #000000">()</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">801</span><span style="COLOR: #000000">;&nbsp;<br><br>Y&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008080">rand</span><span style="COLOR: #000000">()</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">601</span><span style="COLOR: #000000">;&nbsp;<br><br>SetCursorPos(&nbsp;X</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;Y&nbsp;);&nbsp;<br></span></div>
<img src ="http://www.cppblog.com/alantop/aggbug/29167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-02 08:12 <a href="http://www.cppblog.com/alantop/archive/2007/08/02/29167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在按钮上设置bmp图片</title><link>http://www.cppblog.com/alantop/archive/2007/08/01/29138.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Wed, 01 Aug 2007 08:10:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/08/01/29138.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/29138.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/08/01/29138.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/29138.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/29138.html</trackback:ping><description><![CDATA[<p>HBITMAP hbitmap = ::LoadBitmap(&nbsp;&nbsp;&nbsp; GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1));<br>if ( NULL == hbitmap )<br>&nbsp;&nbsp;&nbsp; AfxMessageBox("失败");<br>else<br>&nbsp;&nbsp;&nbsp; m_BtnBmp.SetBitmap( hbitmap );</p><img src ="http://www.cppblog.com/alantop/aggbug/29138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-08-01 16:10 <a href="http://www.cppblog.com/alantop/archive/2007/08/01/29138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个不错的免费界面库</title><link>http://www.cppblog.com/alantop/archive/2007/07/31/29084.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Tue, 31 Jul 2007 08:31:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/31/29084.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/29084.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/31/29084.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/29084.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/29084.html</trackback:ping><description><![CDATA[<a href="http://www.gardenui.com/index.aspx">http://www.gardenui.com/index.aspx</a><br><br>界面库图片<br>对话框<br><img height=600 alt="" src="http://www.cppblog.com/images/cppblog_com/alantop/01.JPG" width=300 border=0><br><br>多文档<br><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/alantop/02.JPG" width=988 border=0><br><br>单文档<br><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/alantop/03.JPG" width=988 border=0><br>
<img src ="http://www.cppblog.com/alantop/aggbug/29084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-31 16:31 <a href="http://www.cppblog.com/alantop/archive/2007/07/31/29084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>8行撰写的一个备份工具</title><link>http://www.cppblog.com/alantop/archive/2007/07/19/28366.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 19 Jul 2007 09:22:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/19/28366.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28366.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/19/28366.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28366.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28366.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>完整工程下载: <a title=http://zhmster.googlepages.com/bakup.rar href="http://zhmster.googlepages.com/bakup.rar">http://zhmster.googlepages.com/bakup.rar</a></p>
<p>功能：</p>
<p>1. 可以根据ini文件中指定的目录，备份成20070719160004.rar这样的文件。</p>
<p>2. 在计划任务里面设置，例如每天5点运行该程序。</p>
<p>&nbsp;</p>
<p>程序为了使用。所以，尽量用少的代码完成多的多的功能。</p>
<p>&nbsp;</p>
<p>有一些限制如下：</p>
<p>程序不支持长文件名，可用GetShortPathName做转换。</p>
<p>必须安装rar压缩软件。</p>
<p>&nbsp;</p>
<p>代码中ini文件的读写是早上写的，刚好拿来用下。</p>
<p>相关文档： <a title=http://www.cppblog.com/alantop/archive/2007/07/19/28337.html href="http://www.cppblog.com/alantop/archive/2007/07/19/28337.html">http://www.cppblog.com/alantop/archive/2007/07/19/28337.html</a></p>
<p><br>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">void&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CTime&nbsp;currenttime&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;CTime</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">GetCurrentTime();<br>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;strcommand&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;currenttime</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">Format(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">C:\\Progra~1\\WinRAR\\rar&nbsp;a&nbsp;d:\\%Y%m%d%H%M%S.rar&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;stringtoread[MAX_PATH];<br>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;ret&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;COPini</span><span style="COLOR: #000000">::</span><span style="COLOR: #000000">ReadString(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">bakup</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">directory</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;stringtoread</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">bakup.ini</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;strext(stringtoread);<br>&nbsp;&nbsp;&nbsp;&nbsp;strcommand&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;strext;<br>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pcommand&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strcommand</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">GetBuffer(strcommand</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">GetLength());<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008080">system</span><span style="COLOR: #000000">(pcommand);<br>}</span></div>
<img src ="http://www.cppblog.com/alantop/aggbug/28366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-19 17:22 <a href="http://www.cppblog.com/alantop/archive/2007/07/19/28366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vc读取INI文件（原创，简单，实用，注释详细）</title><link>http://www.cppblog.com/alantop/archive/2007/07/19/28337.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 19 Jul 2007 02:28:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/19/28337.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28337.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/19/28337.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28337.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28337.html</trackback:ping><description><![CDATA[<p>近来整理一下资料，把有些东西归类一下。</p> <p>需要读写ini文件的资料。网上找了两个。</p> <p>第一个，是.h和.cpp版本不同。</p> <p>第二个，函数声明太含糊，不方便使用者调用。</p> <p>索性花点时间自己写一个。（首先确定，一定要简单实用，别人一看就明白。）</p> <p>完整工程：<a title="http://zhmster.googlepages.com/opini.rar" href="http://zhmster.googlepages.com/opini.rar">http://zhmster.googlepages.com/opini.rar</a><br></p> <p><br>提醒注意：ini文件和exe文件必须在同个目录。&nbsp;</p> <p>&nbsp;</p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">//</span><span style="color: #008000">&nbsp;OPini.h:&nbsp;interface&nbsp;for&nbsp;the&nbsp;COPini&nbsp;class.<br>//</span><span style="color: #008000"><br>//</span><span style="color: #008000">////////////////////////////////////////////////////////////////////&nbsp;<br><br>//&nbsp;***************************************************************<br>//&nbsp;&nbsp;OPini&nbsp;&nbsp;&nbsp;version:&nbsp;&nbsp;1.0&nbsp;&nbsp;&nbsp;?&nbsp;date:&nbsp;07/19/2007<br>//&nbsp;&nbsp;-------------------------------------------------------------<br>//&nbsp;&nbsp;这个类用来读取exe下ini文件的内容。<br>//&nbsp;&nbsp;-------------------------------------------------------------<br>//&nbsp;&nbsp;Copyright&nbsp;(C)&nbsp;2007&nbsp;-&nbsp;All&nbsp;Rights&nbsp;Reserved<br>//&nbsp;***************************************************************<br>//&nbsp;<br>//&nbsp;***************************************************************&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br></span><span style="color: #008000">#</span><span style="color: #008000">if&nbsp;!defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_)</span><span style="color: #008000"><br>#</span><span style="color: #008000">define&nbsp;AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br></span><span style="color: #008000">#</span><span style="color: #008000">if&nbsp;_MSC_VER&nbsp;&gt;&nbsp;1000</span><span style="color: #008000"><br>#</span><span style="color: #008000">pragma&nbsp;once</span><span style="color: #008000"><br>#</span><span style="color: #008000">endif&nbsp;//&nbsp;_MSC_VER&nbsp;&gt;&nbsp;1000&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br></span><span style="color: #008000">#</span><span style="color: #008000">include&nbsp;&lt;afxwin.h&gt;&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br></span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;COPini&nbsp;&nbsp;<br>{<br></span><span style="color: #0000ff">public</span><span style="color: #000000">:</span><span style="color: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;DWORD&nbsp;ReadString&nbsp;(char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">section</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #008080">key</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;char&nbsp;stringtoread[]</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;filename);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;BOOL&nbsp;WriteString(LPCTSTR&nbsp;section</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;LPCTSTR&nbsp;</span><span style="color: #008080">key</span><span style="color: #000000">,</span><span style="color: #000000">char</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;stringtoadd</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">filename);<br>&nbsp;&nbsp;&nbsp;&nbsp;COPini();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">virtual</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">~</span><span style="color: #000000">COPini();&nbsp;<br><br>};&nbsp;<br><br></span><span style="color: #008000">#</span><span style="color: #008000">endif&nbsp;//&nbsp;!defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_)&nbsp;<br></span></div> <p><br></p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000"><br><br></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;OPini.cpp:&nbsp;implementation&nbsp;of&nbsp;the&nbsp;COPini&nbsp;class.<br>//</span><span style="color: #008000"><br>//</span><span style="color: #008000">////////////////////////////////////////////////////////////////////&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br></span><span style="color: #008000">#</span><span style="color: #008000">include&nbsp;"OPini.h"&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br></span><span style="color: #008000">/*</span><span style="color: #008000">*******************************************************************<br>&nbsp;&nbsp;&nbsp;&nbsp;created:&nbsp;&nbsp;&nbsp;&nbsp;2007/07/19<br>&nbsp;&nbsp;&nbsp;&nbsp;created:&nbsp;&nbsp;&nbsp;&nbsp;19:7:2007&nbsp;&nbsp;&nbsp;10:13<br>&nbsp;&nbsp;&nbsp;&nbsp;filename:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPini.cpp<br>&nbsp;&nbsp;&nbsp;&nbsp;file&nbsp;path:&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;file&nbsp;base:&nbsp;&nbsp;&nbsp;&nbsp;OPini<br>&nbsp;&nbsp;&nbsp;&nbsp;file&nbsp;ext:&nbsp;&nbsp;&nbsp;&nbsp;cpp<br>&nbsp;&nbsp;&nbsp;&nbsp;author:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alantop<br>&nbsp;&nbsp;&nbsp;&nbsp;purpose:&nbsp;&nbsp;&nbsp;&nbsp;读取INI文件。<br>********************************************************************</span><span style="color: #008000">*/</span><span style="color: #000000">&nbsp;<br><br></span><span style="color: #008000">//</span><span style="color: #008000">////////////////////////////////////////////////////////////////////<br>//&nbsp;Construction/Destruction</span><span style="color: #008000"><br>//</span><span style="color: #008000">////////////////////////////////////////////////////////////////////&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br>COPini</span><span style="color: #000000">::</span><span style="color: #000000">COPini()<br>{<br>}&nbsp;<br><br>COPini</span><span style="color: #000000">::~</span><span style="color: #000000">COPini()<br>{<br>}<br></span><span style="color: #008000">/*</span><span style="color: #008000">****************************************************************************<br>Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Description:&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写字符串到INI文件<br>Calls:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Called&nbsp;By:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Table&nbsp;Accessed:&nbsp;//&nbsp;<br>Table&nbsp;Updated:&nbsp;&nbsp;//&nbsp;<br>Input:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Output:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Return:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;成功返回真，失败返回假.失败后，可用DWORD&nbsp;GetLastError(VOID)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;查询失败原因。<br>Others:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>author:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;alantop<br>date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;2007.07.19<br>*****************************************************************************</span><span style="color: #008000">*/</span><span style="color: #000000"><br></span><span style="color: #008000">/*</span><span style="color: #008000"><br>void&nbsp;error(LPSTR&nbsp;lpszFunction)&nbsp;<br>{&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;CHAR&nbsp;szBuf[80];&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;dw&nbsp;=&nbsp;GetLastError();&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(szBuf,&nbsp;"%s&nbsp;failed:&nbsp;GetLastError&nbsp;returned&nbsp;%u\n",&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpszFunction,&nbsp;dw);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(NULL,&nbsp;szBuf,&nbsp;"Error",&nbsp;MB_OK);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;ExitProcess(dw);&nbsp;<br>}&nbsp;<br><br></span><span style="color: #008000">*/</span><span style="color: #000000"><br>BOOL&nbsp;COPini</span><span style="color: #000000">::</span><span style="color: #000000">WriteString(LPCTSTR&nbsp;section</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;LPCTSTR&nbsp;</span><span style="color: #008080">key</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">stringtoadd</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">filename)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CHAR&nbsp;FilePath[</span><span style="color: #000000">255</span><span style="color: #000000">];&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;GetModuleFileName(</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,</span><span style="color: #000000">FilePath</span><span style="color: #000000">,</span><span style="color: #000000">255</span><span style="color: #000000">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">Scan&nbsp;a&nbsp;string&nbsp;for&nbsp;the&nbsp;last&nbsp;occurrence&nbsp;of&nbsp;a&nbsp;character.</span><span style="color: #008000"><br></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #008080">strrchr</span><span style="color: #000000">(FilePath</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">))[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;strcat(FilePath</span><span style="color: #000000">,</span><span style="color: #000000">filename);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">::</span><span style="color: #000000">WritePrivateProfileString(section</span><span style="color: #000000">,</span><span style="color: #008080">key</span><span style="color: #000000">,</span><span style="color: #000000">stringtoadd</span><span style="color: #000000">,</span><span style="color: #000000">FilePath);<br>}&nbsp;<br><br></span><span style="color: #008000">/*</span><span style="color: #008000">****************************************************************************<br>Function:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Description:&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;从INI文件中读取字符串<br>Calls:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Called&nbsp;By:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Table&nbsp;Accessed:&nbsp;//&nbsp;<br>Table&nbsp;Updated:&nbsp;&nbsp;//&nbsp;<br>Input:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Output:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>Return:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;读取了多少个字节的字符<br>Others:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;<br>author:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;alantop<br>date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;2007.07.19<br>*****************************************************************************</span><span style="color: #008000">*/</span><span style="color: #000000"><br>DWORD&nbsp;COPini</span><span style="color: #000000">::</span><span style="color: #000000">ReadString(char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">section</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;</span><span style="color: #008080">key</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;char&nbsp;stringtoread[]</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;char&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;filename)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CHAR&nbsp;FilePath[</span><span style="color: #000000">255</span><span style="color: #000000">];&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;GetModuleFileName(</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,</span><span style="color: #000000">FilePath</span><span style="color: #000000">,</span><span style="color: #000000">255</span><span style="color: #000000">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #008080">strrchr</span><span style="color: #000000">(FilePath</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">))[</span><span style="color: #000000">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;strcat(FilePath</span><span style="color: #000000">,</span><span style="color: #000000">filename);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">::</span><span style="color: #000000">GetPrivateProfileString(section</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #008080">key</span><span style="color: #000000">,</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,</span><span style="color: #000000">stringtoread</span><span style="color: #000000">,</span><span style="color: #000000">255</span><span style="color: #000000">,</span><span style="color: #000000">FilePath);<br>}&nbsp;<br><br></span></div> <p><br>&nbsp;</p> <p>&nbsp;示例：</p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">#</span><span style="color: #008000">include&nbsp;&lt;stdio.h&gt;</span><span style="color: #008000"><br>#</span><span style="color: #008000">include&nbsp;"opini.h"&nbsp;</span><span style="color: #008000"><br></span><span style="color: #000000"><br>void&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;stringtoread[</span><span style="color: #000000">200</span><span style="color: #000000">];<br>&nbsp;&nbsp;&nbsp;&nbsp;COPini</span><span style="color: #000000">::</span><span style="color: #000000">ReadString(</span><span style="color: #000000">"</span><span style="color: #000000">group</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">item</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;stringtoread</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">test.ini</span><span style="color: #000000">"</span><span style="color: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;stringtoadd[]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">hello1</span><span style="color: #000000">"</span><span style="color: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;COPini</span><span style="color: #000000">::</span><span style="color: #000000">WriteString(</span><span style="color: #000000">"</span><span style="color: #000000">group</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">item</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;&nbsp;stringtoadd</span><span style="color: #000000">,</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">test.ini</span><span style="color: #000000">"</span><span style="color: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">;<br>}<br></span></div><img src ="http://www.cppblog.com/alantop/aggbug/28337.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-19 10:28 <a href="http://www.cppblog.com/alantop/archive/2007/07/19/28337.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CreateCompatibleDC用法</title><link>http://www.cppblog.com/alantop/archive/2007/07/16/28148.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 16 Jul 2007 13:07:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/16/28148.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28148.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/16/28148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28148.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28148.html</trackback:ping><description><![CDATA[<p>CreateCompatibleDC <p>Creates a memory device context that is compatible with the device specified by pDC. <p>&nbsp;&nbsp;&nbsp;&nbsp; 假如需要对屏幕进行比较多的gdi函数操作，如果每一步操作都直接对屏幕dc进行操作，那出现的大多数可能性都是屏幕的闪烁。一个很好的解决方法就是使用内存dc，将这些操作全部先在内存dc上操作，然后依次性在屏幕上进行操作。  <p>&nbsp; 例如：如果你单单使用bitblt在屏幕上拷贝一个图，那可以直接使用屏幕的dc。但是如果你要先设置背景(fillrect)然后再bitblt的话，这就涉及到两个屏幕dc的操作，这样的话屏幕很容易闪烁。  <p>void CBounceWnd::OnTimer(UINT_PTR /* wParam */)<br>{<br>&nbsp;&nbsp;&nbsp; if (m_bmBall.m_hObject == NULL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;&nbsp;&nbsp;&nbsp;&nbsp; // no bitmap for the ball  <p>&nbsp;&nbsp;&nbsp; CRect rcClient;<br>&nbsp;&nbsp;&nbsp; GetClientRect(rcClient);  <p>&nbsp;&nbsp;&nbsp; CClientDC dc(this);<br>&nbsp;&nbsp;&nbsp; CBitmap* pbmOld = NULL;  <p>&nbsp;&nbsp;&nbsp; CDC dcMem;<br>&nbsp;&nbsp;&nbsp; dcMem.CreateCompatibleDC(&amp;dc);<br>&nbsp;&nbsp;&nbsp; pbmOld = dcMem.SelectObject(&amp;m_bmBall);  <p>&nbsp;&nbsp;&nbsp; dc.BitBlt(m_ptCenter.x - m_sizeTotal.cx / 2,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_ptCenter.y - m_sizeTotal.cy / 2,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_sizeTotal.cx, m_sizeTotal.cy,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;dcMem, 0, 0, SRCCOPY);  <p>&nbsp;&nbsp;&nbsp; m_ptCenter += m_sizeMove;  <p>&nbsp;&nbsp;&nbsp; if ((m_ptCenter.x + m_sizeRadius.cx &gt;= rcClient.right) ||<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (m_ptCenter.x - m_sizeRadius.cx &lt;= 0))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_sizeMove.cx = -m_sizeMove.cx;<br>&nbsp;&nbsp;&nbsp; }  <p>&nbsp;&nbsp;&nbsp; if ((m_ptCenter.y + m_sizeRadius.cy &gt;= rcClient.bottom) ||<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (m_ptCenter.y - m_sizeRadius.cy &lt;= 0))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_sizeMove.cy = -m_sizeMove.cy;<br>&nbsp;&nbsp;&nbsp; }  <p>&nbsp;&nbsp;&nbsp; dcMem.SelectObject(pbmOld);<br>&nbsp;&nbsp;&nbsp; dcMem.DeleteDC();<br>}</p><img src ="http://www.cppblog.com/alantop/aggbug/28148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-16 21:07 <a href="http://www.cppblog.com/alantop/archive/2007/07/16/28148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC教程</title><link>http://www.cppblog.com/alantop/archive/2007/07/16/28146.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 16 Jul 2007 12:51:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/16/28146.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28146.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/16/28146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28146.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28146.html</trackback:ping><description><![CDATA[<p>1_MFC概述 <p>2_MFC和Win32 <p>3_CObject类 <p>4_消息映射的实现 <p>5_MFC对象的创建 <p>6_应用程序的退出 <p>7_MFC的DLL <p>8_MFC的进程和线程 <p>9_MFC的状态 <p>10_内存分配方式和调试机制 <p>11_MFC下的文件类 <p>12_对话框和对话框类CDialog <p>13_MFC工具条和状态栏 <p>14_SOCKET类的设计和实现 <p><a title="http://www.vczx.com/tutorial/mfc/mfc.php" href="http://www.vczx.com/tutorial/mfc/mfc.php">http://www.vczx.com/tutorial/mfc/mfc.php</a></p><img src ="http://www.cppblog.com/alantop/aggbug/28146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-16 20:51 <a href="http://www.cppblog.com/alantop/archive/2007/07/16/28146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vc++十二课</title><link>http://www.cppblog.com/alantop/archive/2007/07/16/28140.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 16 Jul 2007 10:59:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/16/28140.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28140.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/16/28140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28140.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28140.html</trackback:ping><description><![CDATA[<p>　第一课：Windows编程和面向对象技术  <p>　第二课：使用Visual C++ 5.0  <p>　第三课：窗口、菜单与消息框  <p>　第四课：工具条和状态栏  <p>　第五课：对话框  <p>　第六课：控件。  <p>　第七课：文档/视图结构。  <p>　第八课：多文档界面（MDI）。  <p>　第九课：创建用户模块。  <p>　第十课：数据库编程。  <p>&nbsp;&nbsp;&nbsp;第十一课：多媒体编程。　  <p>　第十二章：多线程与串行通信。  <p><a title="http://www.impcas.ac.cn/usr/yuanyj/vcpptutorial/" href="http://www.impcas.ac.cn/usr/yuanyj/vcpptutorial/">http://www.impcas.ac.cn/usr/yuanyj/vcpptutorial/</a></p><img src ="http://www.cppblog.com/alantop/aggbug/28140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-16 18:59 <a href="http://www.cppblog.com/alantop/archive/2007/07/16/28140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单文档和多文档的区别</title><link>http://www.cppblog.com/alantop/archive/2007/07/16/28138.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 16 Jul 2007 10:52:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/16/28138.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28138.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/16/28138.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28138.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28138.html</trackback:ping><description><![CDATA[<p></p> <p>框架窗口为应用程序的用户界面提供结构框架，它是应用程序的主窗口，负责管理其包容的窗口，一个应用程序的最顶层的框架窗口是应用程序启动时创建的第一个窗口。</p> <p>MFC提供三种类型的框架窗口：单文档窗口，多文档窗口（MDI），对话框。在AppWizard的第一个对话框中，就提供了选项，让用户选择应用程序是基于单文档、多文档还是对话框的。</p> <p>MFC单文档窗口一次只能打开一个文档框架窗口，</p> <p>而MDI应用程序运行时，在应用程序的一个实例中打开多个文档框架窗口，这些窗口称作子窗口（Child Window）。</p> <p>这些文档可以是同一类型的，也可以是不同类型的。</p> <p>如Visual Studio就可以打开资源文件窗口和源程序窗口等不同类型的窗口。此时，激活不同类型的MDI子窗口，菜单也将相应变化。</p> <p>&nbsp;</p> <p>窗口的创建过程：</p> <p><a title="http://www.impcas.ac.cn/usr/yuanyj/vcpptutorial/chap3_5.htm" href="http://www.impcas.ac.cn/usr/yuanyj/vcpptutorial/chap3_5.htm">http://www.impcas.ac.cn/usr/yuanyj/vcpptutorial/chap3_5.htm</a></p><img src ="http://www.cppblog.com/alantop/aggbug/28138.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-16 18:52 <a href="http://www.cppblog.com/alantop/archive/2007/07/16/28138.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EnumChildWindows Function</title><link>http://www.cppblog.com/alantop/archive/2007/07/16/28134.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 16 Jul 2007 10:34:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/16/28134.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28134.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/16/28134.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28134.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28134.html</trackback:ping><description><![CDATA[<p>The <b>EnumChildWindows</b> function enumerates the child windows that belong to the specified parent window by passing the handle to each child window, in turn, to an application-defined callback function. <b>EnumChildWindows</b> continues until the last child window is enumerated or the callback function returns FALSE.</p> <p>&nbsp;</p> <p>主框架调用EnumChildWindows让每个子窗口都去执行SendPrepareToClose去做每个子窗口的清理工作。</p> <p>BOOL CMainFrame::DestroyWindow()<br>{<br>&nbsp;&nbsp;&nbsp; ::EnumChildWindows(m_hWnd, SendPrepareToClose, 0);  <p>&nbsp;&nbsp;&nbsp; return CMDIFrameWnd::DestroyWindow();<br>} <p>&nbsp;</p> <p>static BOOL CALLBACK SendPrepareToClose(HWND hWnd, LPARAM)<br>{<br>&nbsp;&nbsp;&nbsp; CWnd* pWnd = CWnd::FromHandlePermanent(hWnd);<br>&nbsp;&nbsp;&nbsp; if (pWnd != NULL)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pWnd-&gt;SendMessage(WM_USER_PREPARE_TO_CLOSE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (pWnd-&gt;GetWindow(GW_CHILD) != NULL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::EnumChildWindows(pWnd-&gt;m_hWnd, SendPrepareToClose, 0);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; return TRUE;<br>} <img src ="http://www.cppblog.com/alantop/aggbug/28134.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-16 18:34 <a href="http://www.cppblog.com/alantop/archive/2007/07/16/28134.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图像格式转换程序</title><link>http://www.cppblog.com/alantop/archive/2007/07/16/28123.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 16 Jul 2007 06:21:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/16/28123.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28123.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/16/28123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28123.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28123.html</trackback:ping><description><![CDATA[<p><br>#using &lt;system.drawing.dll&gt;  <p>using namespace System;<br>using namespace System::Drawing;<br>using namespace System::Drawing::Imaging;  <p>int main(array&lt;System::String ^&gt; ^args)<br>{<br>&nbsp;&nbsp;&nbsp; Image^ image&nbsp; = Image::FromFile("c:\\1.bmp");<br>&nbsp;&nbsp;&nbsp; image-&gt;Save("c:\\1.png", ImageFormat::Png);<br>&nbsp;&nbsp;&nbsp; image-&gt;Save("c:\\1.jpg", ImageFormat::Jpeg);<br>&nbsp;&nbsp;&nbsp; image-&gt;Save("c:\\1.gif", ImageFormat::Gif);<br>&nbsp;&nbsp;&nbsp; image-&gt;Save("c:\\1.ico", ImageFormat::Icon);<br>&nbsp;&nbsp;&nbsp; image-&gt;Save("c:\\1.emf", ImageFormat::Emf);<br>&nbsp;&nbsp;&nbsp; return 0;<br>}</p><img src ="http://www.cppblog.com/alantop/aggbug/28123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-16 14:21 <a href="http://www.cppblog.com/alantop/archive/2007/07/16/28123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何获得主框架指针？</title><link>http://www.cppblog.com/alantop/archive/2007/07/15/28068.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Sun, 15 Jul 2007 06:30:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/15/28068.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/28068.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/15/28068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/28068.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/28068.html</trackback:ping><description><![CDATA[<p>CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd();</p><img src ="http://www.cppblog.com/alantop/aggbug/28068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-15 14:30 <a href="http://www.cppblog.com/alantop/archive/2007/07/15/28068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>画图出现莫名横线</title><link>http://www.cppblog.com/alantop/archive/2007/07/13/27949.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Fri, 13 Jul 2007 02:59:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/13/27949.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/27949.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/13/27949.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/27949.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/27949.html</trackback:ping><description><![CDATA[<p>此程序是用gdi+画图程序。<br>为了演示，只把问题表明，所以在代码没什么严禁性<br>代码下载：<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">http</span><span style="COLOR: #000000">:</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">yanhui8001.googlepages.com/test_draw.rar</span></div>
<p><br><font color=#0000ff><strong></strong></font>&nbsp;</p>
<p><font color=#0000ff><strong>下载后，需要手工设置gdi+ include和lib目录。</strong></font></p>
<p>编译後，可以正常运行。<br>点击button1按钮，即可在static上绘图。<br>绘图成功后，把鼠标放在static上会出现莫名的一道横线。 </p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">http</span><span style="COLOR: #000000">:</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">yanhui8001.googlepages.com/question.rar</span></div>
<p><br>这个是问题演示的视频你可以看看。
<p>&nbsp;&nbsp;&nbsp;
<p>奇怪的是居然有的人，不出现横线。有的人出横线。
<p>有的人居然今天出现横线，明天没有了。
<p>晕死。
<p>有经验的人谈谈。
<p>&nbsp;</p>
<p>不知道这样发首页，会不会算不算破坏规则。</p>
<p>如果是的话，请版主通知。马上去掉。</p>
<p>谢谢。</p>
<img src ="http://www.cppblog.com/alantop/aggbug/27949.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-13 10:59 <a href="http://www.cppblog.com/alantop/archive/2007/07/13/27949.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>写系统日志中注意的问题</title><link>http://www.cppblog.com/alantop/archive/2007/07/12/27908.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Thu, 12 Jul 2007 06:49:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/12/27908.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/27908.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/12/27908.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/27908.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/27908.html</trackback:ping><description><![CDATA[<p>HANDLE m_hEventSource = ::RegisterEventSource(NULL,&nbsp; // local machine<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("NT Service Demonstration")); // source name  <p>&nbsp;</p> <p>在使用RegisterEventSource这个函数，第二个参数必须是</p> <p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application]</p> <p>中sources中含有的。</p> <p>&nbsp;</p> <p><strong>下图点击放大。</strong></p> <p><a href="http://www.cppblog.com/images/cppblog_com/alantop/WindowsLiveWriter/62d1670c836b_CF9D/image.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="615" alt="image" src="http://www.cppblog.com/images/cppblog_com/alantop/WindowsLiveWriter/62d1670c836b_CF9D/image_thumb.png" width="899" border="0"></a></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>自我感悟，每个消息的是从source中找他的消息<em>ID的。</em>所以应用程序改是没有什么用的。</p> <p>用自带的.mc经消息编译器编译后，生成的那些都没有用。</p> <p>.mc文件经过编译生成三个文件 .h, .rc, msg00001.bin文件。</p> <p>&nbsp;</p> <p>void LogEvent(WORD wType, DWORD dwID,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* pszS1 = NULL,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* pszS2 = NULL,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* pszS3 = NULL);  <p>int main( )<br>{<br>&nbsp;&nbsp;&nbsp; LogEvent(EVENTLOG_INFORMATION_TYPE, EVMSG_DEMO1, "WMIAdapter");<br>&nbsp;&nbsp;&nbsp; return 0;  <p>}  <p>void LogEvent(WORD wType, DWORD dwID,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* pszS1,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* pszS2,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* pszS3)<br>{<br>&nbsp;&nbsp;&nbsp; const char* ps[3];<br>&nbsp;&nbsp;&nbsp; ps[0] = pszS1;<br>&nbsp;&nbsp;&nbsp; ps[1] = pszS2;<br>&nbsp;&nbsp;&nbsp; ps[2] = pszS3;  <p>&nbsp;&nbsp;&nbsp; int iStr = 0;<br>&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; 3; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ps[i] != NULL) iStr++;<br>&nbsp;&nbsp;&nbsp; }  <p>&nbsp;&nbsp;&nbsp; // Check the event source has been registered and if<br>&nbsp;&nbsp;&nbsp; // not then register it now  <p>&nbsp;&nbsp;&nbsp; HANDLE m_hEventSource = ::RegisterEventSource(NULL,&nbsp; // local machine<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ("WMIAdapter")); // source name  <p>&nbsp;&nbsp;&nbsp; bool bi;<br>&nbsp;&nbsp;&nbsp; if (m_hEventSource) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bi = ::ReportEvent(m_hEventSource,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dwID,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL, // sid<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iStr,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL);<br>&nbsp;&nbsp;&nbsp; }<br>}  <img src ="http://www.cppblog.com/alantop/aggbug/27908.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-12 14:49 <a href="http://www.cppblog.com/alantop/archive/2007/07/12/27908.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IDL是什么？</title><link>http://www.cppblog.com/alantop/archive/2007/07/09/27725.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Mon, 09 Jul 2007 04:22:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2007/07/09/27725.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/27725.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2007/07/09/27725.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/27725.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/27725.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: IDL(Interface Definition Language)即接口定义语言。&nbsp;&nbsp;<a href='http://www.cppblog.com/alantop/archive/2007/07/09/27725.html'>阅读全文</a><img src ="http://www.cppblog.com/alantop/aggbug/27725.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2007-07-09 12:22 <a href="http://www.cppblog.com/alantop/archive/2007/07/09/27725.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCP与UDP的区别</title><link>http://www.cppblog.com/alantop/archive/2006/05/30/7876.html</link><dc:creator>AlanTop</dc:creator><author>AlanTop</author><pubDate>Tue, 30 May 2006 06:38:00 GMT</pubDate><guid>http://www.cppblog.com/alantop/archive/2006/05/30/7876.html</guid><wfw:comment>http://www.cppblog.com/alantop/comments/7876.html</wfw:comment><comments>http://www.cppblog.com/alantop/archive/2006/05/30/7876.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/alantop/comments/commentRss/7876.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/alantop/services/trackbacks/7876.html</trackback:ping><description><![CDATA[
		<p>Stream (TCP) Socket 提供「双向」、「可靠」、「有次序」、「不重覆」之</p>
		<p>
		</p>
		<p>资料传送。</p>
		<p>
		</p>
		<p>Datagram (UDP) Socket 则提供「双向」之沟通，但没有「可靠」、「有次</p>
		<p>
		</p>
		<p>序」、「不重覆」等之保证； 所以使用者可能会收到无次序、重覆之资料，甚至</p>
		<p>
		</p>
		<p>资料在传输过程中也可能会遗漏。</p>
		<script type="text/javascript">
				<!--
google_ad_client = "pub-1888909929681472";
google_ad_width = 125;
google_ad_height = 125;
google_ad_format = "125x125_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_link = "0000FF";
google_color_bg = "FFFFFF";
google_color_text = "000000";
google_color_url = "008000";
//-->
		</script>
		<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
		</script>
<img src ="http://www.cppblog.com/alantop/aggbug/7876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/alantop/" target="_blank">AlanTop</a> 2006-05-30 14:38 <a href="http://www.cppblog.com/alantop/archive/2006/05/30/7876.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>