﻿<?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/gohan/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 04 Jul 2008 21:52:55 GMT</lastBuildDate><pubDate>Fri, 04 Jul 2008 21:52:55 GMT</pubDate><ttl>60</ttl><item><title>for循环在条件语句中遍历字符串常量</title><link>http://www.cppblog.com/gohan/archive/2008/06/30/54941.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Mon, 30 Jun 2008 02:40:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/30/54941.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/54941.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/30/54941.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/54941.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/54941.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp; 这样利用字符串常量的方法我还是第一次见到，有点意思吧。最初的程序源自<a href="http://discuss.joelonsoftware.com/default.asp?interview.11.648182" target="_blank">这里</a>，那个程序中不同的字符表示putchar循环执行的次数不同，下标奇偶决定了打印!还是空格。可以根据这样的方法构造一个打印几种字符组成的像素图形。</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<div style="border-style: none; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">#include &lt;cstdio&gt;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #0000ff;">int</span> main()</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">{</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">    <span style="color: #0000ff;">int</span> a,b,c;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">    <span style="color: #0000ff;">for</span> (c=b=10;a=<span style="color: #006080;">"VAMSI PERI,TFy!QJu ROo TNn(ROo)SLq SLq ULo+ UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^ NBELPeHBFHT}TnALVlBLOFAkHFOuFETp HCStHAUFAgcEAelclcn^r^r\\tZvYxXy T|S~Pn SPm SOn TNn ULo0ULo#ULo-W Hq!WFs XDt!"</span> [b++];)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">        <span style="color: #0000ff;">for</span>(; a-- &gt; 64 ; )</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">            putchar ( ++c==90 ? c=10:33^b&amp;1);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">}</pre>
</div>
</div>
<p>&nbsp;&nbsp; 照着这样的方法写了个打印字符串的东西，可以按照指定长度换行。</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<div style="border-style: none; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">#include &lt;cstdio&gt;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #0000ff;">int</span> main()</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">{</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">    <span style="color: #0000ff;">int</span> a,b,c;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">    <span style="color: #0000ff;">for</span> (c=b=0;a=<span style="color: #006080;">"www.cppblog.com/gohan        this is a test"</span>[b++];)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">        <span style="color: #0000ff;">if</span>(a!=<span style="color: #006080;">'\0'</span>)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">            putchar ( ++c==30 ? c=0,b--,10:a);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">    putchar(10);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">}</pre>
</div>
</div>
<p>&nbsp;&nbsp; 最后这个是打印一个自己构造的ASC字符，这里构造的是我的名字 </p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<div style="border-style: none; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">#include &lt;cstdio&gt;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #0000ff;">int</span> main()</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">{</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">    <span style="color: #0000ff;">int</span> a,b,c;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">    <span style="color: #0000ff;">for</span> (c=0,b=0;a=<span style="color: #006080;">"@u@GFLB[@DBJDDFEDEFD@CBBDBBDBBBDBBBCBCBDBC@BBDBBBDBBBDBBBCBCBDBD@CFDDDBDBDGABDBE@v"</span>[b++];)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">        <span style="color: #0000ff;">for</span>(; a-- &gt; 64 ; )</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;">            putchar ( ++c==54 ? c=0,10:33^b&amp;1);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">}</pre>
</div>
</div>
<p>&nbsp;</p>
<br>
<p>执行效果如图<img style="border: 0px none ;" alt="image" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/for_8AB1/image_fa684c31-8888-411d-a5f3-8b78be7c54c2.png" align="left" border="0" height="137" width="509"></p>
<br>
<p><br></p>
<br>
<p><br></p>
<br>
<p><br></p>
<p><br></p><img src ="http://www.cppblog.com/gohan/aggbug/54941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-30 10:40 <a href="http://www.cppblog.com/gohan/archive/2008/06/30/54941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GWeekly[22] = Bye Bye Gates..</title><link>http://www.cppblog.com/gohan/archive/2008/06/29/54929.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Sun, 29 Jun 2008 15:50:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/29/54929.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/54929.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/29/54929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/54929.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/54929.html</trackback:ping><description><![CDATA[<img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="163" alt="Gates" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/GWeekly22ByeByeGates_14517/1388149492_4b91ac52-fac0-4500-8f87-331e97ca2ffe.jpg" width="244" align="right" border="0"> <p>&nbsp;&nbsp;&nbsp; 盖茨这周就算是正式退休了，他的一生是很令人敬仰的，M$帝国是他一手创建的，现在他光荣的离开了自己的职业生涯，在此跟他说声Bye Bye，以后的IT领域依然会人才辈出的。周末坐火车回家了，心情比较复杂，没能达到自己那种感觉良好的状态，也许只能靠时间来慢慢调整。这周新买两本闲书，<a href="http://www.douban.com/subject/2141624/" target="_blank">躁狂抑郁多才俊</a>还有<a href="http://www.douban.com/subject/1193622/" target="_blank">自我</a>，决策与判断算是翻过去一遍了，略有些体会。三国风云的辅助程序不打算继续做了，架子放那儿也就好了。回来随便关注了一下HOOK输入法事件的例子，尝试改变输入法最后输出的结果，目前仍旧未遂，不过可以在输入法输出的基础上加个小尾巴，用来做流氓软件可能可以。目前有个打算是利用cppblog提供的BlogAPI搞一个博客备份的东西，练习练习。</p> <p>本周收藏：</p> <ul> <li><a href="http://maqi.spaces.live.com/Blog/cns%218C079D3799712029%21653.entry" target="_blank">我的第一个.Net Micro Framework设备驱动程序</a> .Net也可以做设备驱动程序的</li> <li><a href="http://www.appinn.com/ear-test-hearing-test/" target="_blank">Ear Test / Hearing Test - 听力测试</a> 一个测试听力的软件</li> <li><a href="http://www.dapenti.com/blog/more.asp?name=xilei&amp;id=13130" target="_blank">差八帽子远|dapenti</a> 这些差距何时可以变小，我何时可以反省自己？</li> <li><a href="http://www.silencewolf.com/2008/06/27/tinypaste%ef%bc%9a%e7%bd%91%e7%bb%9c%e5%8d%b3%e6%97%b6%e8%b4%b4/" target="_blank">TinyPaste：网络即时贴</a> text2url，也有些用吧</li> <li><a href="http://item.feedsky.com/%7Efeedsky/2maomao/%7E1233821/87122734/1237018/1/item.html" target="_blank">猜数字游戏，计算机求解，八步以内求解决策树</a> 猜数字的机器求解，待研究</li> <li><a href="http://blog.xuite.net/alwaysfuturevision/liminzhang/17807256" target="_blank">笑談我的學習之路</a> 章立民的学习心得</li> <li><a href="http://huaidan.org/archives/2111.html" target="_blank">利用App Engine架设自己的Proxy</a> 再也不怕功夫网</li> <li><a title="http://www.blizzard.com/" href="http://www.blizzard.com/" target="_blank">http://www.blizzard.com/</a> 这个冰终于破裂了，Diablo3，期待中</li> <li><a href="http://www.cnblogs.com/cangying/archive/2008/06/24/1228774.html" target="_blank">.Net 方向的 Coder/Designer 应当掌握什么技能? - Soobb Studio(John Chen) - 博客园</a></li> <li><a href="http://www.cnblogs.com/reddust/archive/2008/06/24/1229028.html" target="_blank">用Google App Engine写一个留言板程序（一） - 总是感觉累..... - 博客园</a> GAE应该要了解一下了</li> <li><a href="http://regex-lib.net/Home/" target="_blank">首页 @ regex-lib.net [中国最大的正则表达式资源中心]</a> 正则表达式的许多资源</li> <li><a href="http://en.wikipedia.org/wiki/List_of_Microsoft_Windows_application_programming_interfaces_and_frameworks" target="_blank">List of Microsoft Windows application programming interfaces and frameworks - Wikipedia, the free encyclopedia</a> Windows应用程序接口与平台一览</li> <li><a href="http://msdn.microsoft.com/en-us/library/aa506172.aspx" target="_blank">Overview of Spooler Notification</a> Windows打印池的内容，我打算了解一下能否记录打印的页数之类的信息。</li> <li><a href="http://extjs.com/" target="_blank">Ext - A foundation you can build on</a> Extjs官网</li> <li><a href="http://www.microsoft.com/presspass/exec/billg/" target="_blank">Bill Gates: Chairman</a> 盖茨微软的页面</li></ul> <p>&nbsp;&nbsp; 这周就现这么着吧。假期计划筹备中。</p><img src ="http://www.cppblog.com/gohan/aggbug/54929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-29 23:50 <a href="http://www.cppblog.com/gohan/archive/2008/06/29/54929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>玩了一下PowerShell，有点意思</title><link>http://www.cppblog.com/gohan/archive/2008/06/26/54615.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Wed, 25 Jun 2008 17:57:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/26/54615.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/54615.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/26/54615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/54615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/54615.html</trackback:ping><description><![CDATA[<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="121" alt="del" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/PowerShell_162B/del_3ff97221-d689-4add-a643-287bdd6a5ea4.gif" width="121" align="right" border="0">&nbsp;&nbsp; 考完试了，今天闲下来整理Delicious的书签，发现我自己的分类实在太混乱，于是准备把所有 的tag全部删除，结果发现Delicious中只能一个一个删除tag，还好它提供了API接口，当然还有现成的各种语言可用的库，于是捡来这个<a href="http://netlicious.sourceforge.net/" target="_blank">.Net下的Delicious库</a>，准备用C#随便写个程序批量删除，可是突然冒出个念头，用PowerShell试试吧。</p> <p>&nbsp;&nbsp; 于是这个支持装载.Net DLL的PowerShell登场了，先装载DLL：</p> <p>[Reflection.Assembly]::LoadFile("D:\Delicious.Net.dll")</p> <p>&nbsp;&nbsp; 接着设定用户名密码</p> <p>[Delicious.Connection]::Username = "cppgohan"<br>[Delicious.Connection]::Password = "******"</p> <p>&nbsp;&nbsp; 接着读入tag</p> <p>$tags = [Delicious.Tag]::Get()</p> <p>&nbsp;&nbsp; 接着就是foreach循环，将所有tag重命名成一个"blank"，这个库没有提供tag删除，用重命名可以合并tag</p> <p>foreach($tag in $tags)<br>{<br>$temp = [Delicious.Tag]::Rename($tag.Name,"BLANK")<br>} <p>&nbsp;&nbsp; 然后就等它执行完成吧，执行结果还ok，有几次Rename抛出异常了，可能是这个库不太好用。以后如果有空，还可以换用Python试一试，估计比这个PowerShell要高效许多。</p><img src ="http://www.cppblog.com/gohan/aggbug/54615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-26 01:57 <a href="http://www.cppblog.com/gohan/archive/2008/06/26/54615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GWeekly[21] == 这个学期.end()</title><link>http://www.cppblog.com/gohan/archive/2008/06/22/54315.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Sun, 22 Jun 2008 15:23:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/22/54315.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/54315.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/22/54315.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/54315.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/54315.html</trackback:ping><description><![CDATA[<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="146" alt="祝我考试大捷" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/18efbd4dc70d_13CC4/0db52fadd326301a4a36d679_02fe29d0-1a58-48eb-8584-7ccbbfc68f32.jpg" width="244" align="right" border="0">&nbsp;&nbsp; 这周所有的课程都结束了，多门考试已经结束，下周的三天即将面对最后三门考试，分别是微机原理，计算机安全和编译原理。周六的六级考试的听力接近一半都没听怎么懂，卷面还是一贯的乱，考试期间用掉了一小卷纸巾，结果应该不会太好吧。看来虽然能看懂那些简单的英文文档，听懂那些英文视频Demo，不过考起试来还是不行。本来打算写一篇简单异常处理的例子，结果看来还是要放一两周了，这周又玩了一下那个<a href="http://sellsbrothers.com/tools/#regexd" target="_blank">RegexDesigner</a>，可是他对于中文匹配不能正常的显示，因为是开放代码的，将临时生成的html文件加上UTF-8编码头就可以正常显示了。看到Windows Live Writer出了个twitter的插件<a href="http://www.wangtam.com/50226711/windows_live_writer_aeienotify_twitter_151204.php" target="_blank">Notify Twitter</a>，好像用了最新的Live Writer SDK，有空我也可以写个饭否插件或豆瓣插件的东西了，只是豆瓣的那个OAuth签名现在还没试过，等假期有机会研究一下吧。研究了一下VS2005的文件自定义生成规则，可以实现一些生成文件前的预处理工作等等。</p> <p>&nbsp;&nbsp; 感叹于很多人都玩上了C#3.0还有WPF这些有意思的东西，我的计算机可是跑不动了，希望早点换台电脑了。买了本Jeffrey Richter写的<a href="http://www.douban.com/subject/1919818/" target="_blank">CLR via C#</a>，打算好好读读。</p> <p>&nbsp;&nbsp; 本周收藏：</p> <ul> <li><a href="http://blog.csdn.net/g9yuayon/archive/2008/06/21/2574781.aspx" target="_blank">祥林嫂精神恍惚痛苦呼唤之关于Suffix Tree</a> 后缀树的一篇教程，来自负暄琐话，赶快拜读一下。</li> <li><a href="http://topic.csdn.net/u/20080621/19/aa74ff2d-e5cc-41ae-947b-3528d2462280.html" target="_blank">ssdt hook与注册表监控程序的开发</a> 注册表监控的一个详细文档，这方面的东西还是要收藏下。</li> <li><a href="http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=961412" target="_blank">Toby Opferman Article |CodeProject.</a> 这个Toby大哥写了关于WDM编程系列以及一个Debug系列，推荐一下</li> <li><a href="http://topic.csdn.net/t/20040508/22/3043517.html" target="_blank">N皇后问题的构造法 专题开发/技术/项目 / 数据结构与算法 - CSDN社区 community.csdn.net</a> 这是我们学校毕业学长的一个技术分享。</li> <li><a href="http://www.firefox.net.cn/dig/" target="_blank">深入浅出 Greasemonkey</a> 在Blankyao同学的博客上看到的，Greasemonkey的js脚本真的打算学学，用处很大呢。</li> <li><a href="http://www.codeproject.com/KB/system/Paladin.aspx" target="_blank">CodeProject: HookAPI source code. Free source code and programming help</a> 对于API调用的Hook，可能vckbase也有类似的文章，先放这里，也是要了解的。</li> <li><a href="http://www.cut-the-knot.org/index.shtml" target="_blank">Interactive Mathematics Miscellany and Puzzles, Index</a> 一些让你动脑筋的题目或者互动程序。</li> <li><a href="http://www.youserials.com/" target="_blank">YouSerials.com - The KEY to Serial Numbers!</a> 不知道以后想要找Serial Number去这里能不能找到，XD。</li> <li><a href="http://feeds.feedburner.com/%7Er/playpc/%7E3/313655714/netscape-navigator-10.html" target="_blank">下載收藏古早味瀏覽器，Netscape Navigator 1.0你玩過嗎？</a> 怀旧一下？</li> <li><a href="http://www.dapenti.com/blog/more.asp?name=xilei&amp;id=12989" target="_blank">《功夫熊猫》是给中国的一封情书</a> 看了以后觉得，梦工厂的动画制作真是令人赞叹不已。</li></ul> <p>&nbsp;&nbsp; 这周就这样了，去复习语法分析了。病好大半了，请各位放心，谢谢爸爸妈妈。</p><img src ="http://www.cppblog.com/gohan/aggbug/54315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-22 23:23 <a href="http://www.cppblog.com/gohan/archive/2008/06/22/54315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[MFC]建立典型HTTP Client应用程序的步骤</title><link>http://www.cppblog.com/gohan/archive/2008/06/19/53963.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Thu, 19 Jun 2008 01:19:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/19/53963.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/53963.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/19/53963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/53963.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/53963.html</trackback:ping><description><![CDATA[<div class="majorTitle">The following table shows the steps you might perform in a typical HTTP client application:</div>
<div id="mainSection">
<div id="mainBody">
<div class="seeAlsoNoToggleSection" id="sectionSection0">
<div class="labelheading"><strong></strong></div>
<div class="tableSection">
<table width="100%">
    <tbody>
        <tr>
            <th>Your goal </th> <th>Actions you take </th> <th>Effects </th>
        </tr>
        <tr>
            <td>
            <p>Begin an HTTP session.</p>
            </td>
            <td>
            <p>Create a <a id="ctl00_rs1_mainContentContainer_ctl01" href="http://msdn.microsoft.com/en-us/library/cttkhz64%28VS.80%29.aspx">CInternetSession</a> object.</p>
            </td>
            <td>
            <p>Initializes WinInet and connects to server.</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Connect to an HTTP server.</p>
            </td>
            <td>
            <p>Use <a id="ctl00_rs1_mainContentContainer_ctl02" href="http://msdn.microsoft.com/en-us/library/59kzsz14%28VS.80%29.aspx">CInternetSession::GetHttpConnection</a>.</p>
            </td>
            <td>
            <p>Returns a <a id="ctl00_rs1_mainContentContainer_ctl03" href="http://msdn.microsoft.com/en-us/library/0z6f3y99%28VS.80%29.aspx">CHttpConnection</a> object.</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Open an HTTP request.</p>
            </td>
            <td>
            <p>Use <a id="ctl00_rs1_mainContentContainer_ctl04" href="http://msdn.microsoft.com/en-us/library/b9zh7b56%28VS.80%29.aspx">CHttpConnection::OpenRequest</a>.</p>
            </td>
            <td>
            <p>Returns a <a id="ctl00_rs1_mainContentContainer_ctl05" href="http://msdn.microsoft.com/en-us/library/0tw8chfe%28VS.80%29.aspx">CHttpFile</a> object.</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Send an HTTP request.</p>
            </td>
            <td>
            <p>Use <a id="ctl00_rs1_mainContentContainer_ctl06" href="http://msdn.microsoft.com/en-us/library/x0sdt84e%28VS.80%29.aspx">CHttpFile::AddRequestHeaders</a> and <a id="ctl00_rs1_mainContentContainer_ctl07" href="http://msdn.microsoft.com/en-us/library/2xfbsd16%28VS.80%29.aspx">CHttpFile::SendRequest</a>.</p>
            </td>
            <td>
            <p>Finds the file. Returns FALSE if the file is not found.</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Read from the file.</p>
            </td>
            <td>
            <p>Use <a id="ctl00_rs1_mainContentContainer_ctl08" href="http://msdn.microsoft.com/en-us/library/0tw8chfe%28VS.80%29.aspx">CHttpFile</a>.</p>
            </td>
            <td>
            <p>Reads the specified number of bytes using a buffer you supply.</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Handle exceptions.</p>
            </td>
            <td>
            <p>Use the <a id="ctl00_rs1_mainContentContainer_ctl09" href="http://msdn.microsoft.com/en-us/library/ssz0z60x%28VS.80%29.aspx">CInternetException</a> class.</p>
            </td>
            <td>
            <p>Handles all common Internet exception types.</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>End the HTTP session.</p>
            </td>
            <td>
            <p>Dispose of the <a id="ctl00_rs1_mainContentContainer_ctl10" href="http://msdn.microsoft.com/en-us/library/cttkhz64%28VS.80%29.aspx">CInternetSession</a> object.</p>
            </td>
            <td>
            <p>Automatically cleans up open file handles and connections.</p>
            </td>
        </tr>
    </tbody>
</table>
</div>
</div>
</div>
</div>
<p align="right"><a href="http://msdn.microsoft.com/en-us/library/8yh4zs9e(VS.80).aspx" target="_blank">来源</a></p><img src ="http://www.cppblog.com/gohan/aggbug/53963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-19 09:19 <a href="http://www.cppblog.com/gohan/archive/2008/06/19/53963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GWeekly[20] = 这周.病了</title><link>http://www.cppblog.com/gohan/archive/2008/06/15/53382.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Sun, 15 Jun 2008 14:30:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/15/53382.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/53382.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/15/53382.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/53382.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/53382.html</trackback:ping><description><![CDATA[<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="120" alt="爸爸节日快乐" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/GWeekly20_12A88/fathersday08_4e4be365-de29-4453-be69-bf4b8ef4ea95.gif" width="276" align="right" border="0">&nbsp;&nbsp; 可能周四周五着了凉，周末很长时间是在床上迷迷糊糊过去了，头晕鼻塞嗓哑。这周只是应付几门考试，对于C++的异常处理有一点初步学习，顺便在<a href="http://www.cppblog.com/kevinlynx/" target="_blank">kevinlynx</a>的博客上学到了点C++自己写一个容器分配对象allocator的方法。有几周没有写技术学习的心得了，其实还能写点，可能是因为浮躁的心还有那些断断续续的考试和作业，下周打算写篇C++异常处理的简单例子。学了挺长时间计算机技术，只是长进十分有限，慢慢进步吧。买了一本<a href="http://www.douban.com/subject/1193621/" target="_blank">决策与判断</a>，是<a href="http://blog.csdn.net/pongba" target="_blank">pongba</a>推荐的一本心理学入门书籍，要战胜自己心里的浮躁，灵活运用自己的思想，学一些心理学应该是有很多帮助的，何况这些东西还十分有趣。</p> <p>&nbsp;&nbsp; 本周收藏：</p> <ul> <li><a href="http://BlogExcerption.cnblogs.com" target="_blank">博客园精华集出版</a> 博客园准备出精华集了，这里有具体的文章筛选详情</li> <li><a href="http://www.cs.cmu.edu/puzzle/index.html">The Puzzle Toad</a> 一些Puzzle的英文题目，而且附有solution，准备整理一下。</li> <li><a href="http://showmedo.com/">Learning Python, Linux, Java, Ruby and more with Tutorial Videos</a> 很多在线视频教程，很多都关于Python，linux，看起来不错。</li> <li><a href="http://www.cnblogs.com/loning/archive/2008/06/12/1218381.html">QQ机器人程序,Joymsg,欢迎大家扩展</a> 基于啊不的LumaQQ.net，用到了unity，作者是位高中生，看来我差的有点远了，呵呵</li> <li><a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx" target="_blank">Windows PowerShell</a> PowerShell功能比较强大，速度有点慢，这是他的官网</li> <li><a href="http://www.codinghorror.com/blog/archives/001133.html">ASCII Pronunciation Rules for Programmers</a> 许多ASC符号应该如何发音呢？</li> <li><a href="http://www.blankyao.cn/wp/char-unicode-2.html" target="_blank">编码和字符的详细探讨</a> blankyao同学对于各种编码的一个介绍总结</li> <li><a href="http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx">手把手教你把Vim改装成一个IDE编程环境(图文) - WOOIN的Linux专栏 - CSDNBlog</a> VIM配置入门，虽然我用windows，不过小小了解一下也是好的</li> <li><a href="http://www.makeuseof.com/tag/5-awesome-apps-to-make-things-easier-on-a-usb-drive/">5 Awesome Apps To Make Things Easier On A USB Drive</a> 几个非常不错的软件</li> <li><a href="http://zhiqiang.org/blog/posts/most-windows-game-are-np-complete.html">Windows游戏中的NP完全问题</a> 要想用机器解决windows游戏还是需要点人品了</li> <li><a href="http://toy-a-day.blogspot.com/">Toy-A-Day</a> 一天一个纸模玩具</li> <li><a href="http://grrroux.free.fr/index.html">Gilles and his cubes</a> 关于魔方周边的网站</li> <li><a href="http://blog53.fc2.com/k/king75/file/owata.html" target="_blank">人生ｵﾜﾀ＼(^o^)／の大冒険</a> 一个有点另类的游戏，可以看到一点rockman的影子，攻略<a href="http://ryopure.gozaru.jp/others/owata/owata.html" target="_blank">点这</a></li> <li><a href="http://www.awflasher.com/blog/archives/1318">力荐一款有趣的Flash游戏《海豚奥运2》</a> 还不错的flash游戏，我大概只玩了100多万分</li></ul> <p>&nbsp;&nbsp; 这周就回顾这些，下周还有考试，cet6第二次考，没复习，大概是凶多吉少。休息去了。 </p><img src ="http://www.cppblog.com/gohan/aggbug/53382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-15 22:30 <a href="http://www.cppblog.com/gohan/archive/2008/06/15/53382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GWeekly[19] 绝不忘记过去--端午节，多放一天假</title><link>http://www.cppblog.com/gohan/archive/2008/06/09/52582.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Sun, 08 Jun 2008 16:02:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/09/52582.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/52582.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/09/52582.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/52582.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/52582.html</trackback:ping><description><![CDATA[<p><img style="border: 0px none ;" alt="328397" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/GWeekly19_144BC/328397_576abac8-841a-47ac-9c65-0fae0ec7d964.jpg" align="right" border="0" height="159" width="125">&nbsp;&nbsp;&nbsp; 这周忙忙碌碌发现什么都没做，考试穿插于课程之间，考题介于无聊跟麻烦之间。只因为有考试，我才有机会在纸上写下许多的字，字写的少没练过，所以写的七零八乱很丑，看来有些退化了。这周看到<a href="http://cuitianyi.com/blog/" target="_blank">dd的博客</a>上那个标题为98753210的东西，呵呵，<font color="#008000">绝不忘记</font>过去的教训。这周同学帮我买了本《<a href="http://www.douban.com/subject/3066477/" target="_blank">三体2</a>》，用了一天的下午，另一天的晚上还有次日的凌晨读完了，为作者所想象出的世界架构所叹服，自个儿也体会了一些生命对于这个世界的意义，总之这本书很是精彩。上周玩了一下校内的三国风云游戏，这周写了个定时攻击预定目标的client，可以为每一个城镇制定一个攻击队列，还是用那个<a href="http://www.chilkatsoft.com/" target="_blank">chilkat</a>库，比较方便，别的许多都没有做，感觉有点无为。这周技术方面的书也没看多少，百度之星等等算法有关的学习也再没继续，可能有点心浮气躁了。</p>
<p>&nbsp;&nbsp; 本周收藏：</p>
<h6><a href="http://www.blogjava.net/xyz98/archive/2008/xyz98/archive/2008/05/30/204081.html" target="_blank"></a>&nbsp;</h6>
<ul>
    <li><a href="http://www.blogjava.net/xyz98/archive/2008/xyz98/archive/2008/05/30/204081.html" target="_blank">《冒号和他的学生们》目录 - 冒号专栏 - BlogJava</a> 针对编程学习以及思想的生动文章</li>
    <li><a href="http://www.winprog.org/tutorial/bitmaps.html" target="_blank">Bitmaps, Device Contexts and BitBlt</a> 这是一篇很基础的文章，介绍几个GDI的基本操作</li>
    <li><a href="http://msdn.microsoft.com/en-us/library/ms379617%28VS.80%29.aspx" target="_blank">C++: The Most Powerful Language for .NET Framework Programming</a> 从这里了解托管c++</li>
    <li><a href="http://www.cheatengine.org/" target="_blank">Cheat Engine</a> 这个是一个开源的金山游侠，对于内存操作查询的应用了解很少，有机会要去学学它怎么弄得</li>
    <li><a href="http://www.visualstudiogallery.com/" target="_blank">Visual Studio Gallery</a> 这里有许多Visual Studio 的插件</li>
    <li><a href="http://cuitianyi.com/blog/acm%e6%96%b0%e6%89%8b%e4%b8%8a%e8%b7%af%e6%80%bb%e7%bb%93%e5%8f%8a%e6%84%9f%e8%a8%80" target="_blank">ACM新手上路总结及感言</a> dd的新手上路，学习一下吧</li>
    <li><a href="http://www.wappblog.com/50226711/ieflickreditpicasa_webalbums_assistantiecaeeaeeflcirkgoogle_picasaaecc_145322.php" target="_blank">小工具：FlickrEdit和Picasa Webalbums Assistant，用于批量下载Flcirk及Google Picasa上的图片</a> 我想如果我用<a href="http://www.chilkatsoft.com/" target="_blank">chilkat</a>也许也能实现这个共呢，以后有空就去试试</li>
    <li><a href="http://www.kongregate.com/games/Scarybug/chronotron" target="_blank">Play Chronotron, a free online game on Kongregate</a> 一个有趣的PZL game，后面有点难，没玩翻版，以后继续。</li>
    <li><a href="http://www.appinn.com/nextaction/" target="_blank">NextAction - 下一步你应该做什么？</a> 一个小巧GTD软件</li>
    <li><a href="http://www.securegamers.com/shadowfrench/" target="_blank">ShadowFrench</a> Warcraft3中用过的MapHack就是这儿出品的，只能仰慕这些高手</li>
    <li><a href="http://www.paperfoldables.com/" target="_blank">www.paperfoldables.com</a>&nbsp; 又一个提供折纸玩偶模板的网站</li>
    <li><a href="http://cache.tianya.cn/techforum/content/96/561118.shtml" target="_blank">[特色风味]粽子飘香 端午传情</a> 今天端午节没吃到好吃的豆沙粽子，看看这个，以后也许能弥补这个遗憾</li>
    <li><a href="http://feeds.feedburner.com/%7Er/playpc/%7E3/306667144/retaggr-facebook.html" target="_blank">Retaggr 在部落格裡交換網路名片，把自家相簿變Facebook</a> 准备试用一下，只是我用的互联网服务太少了</li>
    <li><a href="http://www.ufoer.com/post/320.html" target="_blank">你所不了解的真实情况</a> 你知道<strong>HAARP</strong>是什么吗？谁知道呢？</li>
    <li><a href="http://zh.wikipedia.org/wiki/%E4%B9%89%E5%92%8C%E5%9B%A2" target="_blank">义和团运动 - Wikipedia</a> 重新了解了一些近代史</li>
</ul>
<p>&nbsp;&nbsp; 这周回顾很少，就这么多，明天还是放假，祝大家假期愉快。</p><img src ="http://www.cppblog.com/gohan/aggbug/52582.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-09 00:02 <a href="http://www.cppblog.com/gohan/archive/2008/06/09/52582.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GWeekly[18] = 忙碌的一周还有那些记忆的碎片</title><link>http://www.cppblog.com/gohan/archive/2008/06/01/51852.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Sun, 01 Jun 2008 15:44:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/06/01/51852.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/51852.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/06/01/51852.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/51852.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/51852.html</trackback:ping><description><![CDATA[<p><img style="border: 0px none ;" alt="小学时候的我" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/GWeekly18_13ABE/xx.jpg" align="left" border="0" height="132" width="125">&nbsp;&nbsp;&nbsp; 本周进行了两门专业课的考试，算法跟OOPwithJava，课时不多，题也就不难。编译原理还在讲语法分析，看了vczh的那个词法分析的文章，写的明白，用来复习巩固再好不过。上周状态欠佳，这周马马虎虎，周五弄到了那本<a title="http://www.douban.com/subject/3033668/" href="http://www.douban.com/subject/3033668/" target="_blank">让我歌唱80年代</a>，也是关乎一代人记忆的书籍，书中不少地方竟也触动了我。弄到书回来看到小学同学QQ群的各位回忆差不多10年前的往事，有心人贴出来了当时的一些旧照片，那些记忆碎片也就变的完整了些，当时做的那些坏事，傻事，恶作剧被尽数串联起来。</p>
<p>&nbsp;&nbsp; 当我陷入对过去的那种怀念之时，收到了高中好友的信息，帮他完成几个C+<img style="border: 0px none ;" alt="image" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/GWeekly18_13ABE/image_dcdb8689-c282-4441-af6b-972ef1f55946.png" align="right" border="0" height="192" width="323">+的OOP程序，于是凌晨开工，熬了一会儿，也就完事了。周六白天忙着微机原理和接口的实验，操作那些元件挺有意思，只是我的汇编写的太丑:P。这段时间对HTTP客户程序有些兴趣，校内网上有一个叫做<a href="http://x1.sanguo.xiaonei.com/" target="_blank">三国风云的webgame</a>，我也简单玩了，似乎可以用软件做一些机器人的功能，只是我对HTTP进行应用的知识似乎还是不充足，后来我找到了个商业化的HTTP组件，叫做<a href="http://www.chilkatsoft.com/" target="_blank">Chilkat</a>，发现挺好用的，没有购买的组件编译出程序可以使用30天，对于随便玩玩是够用了。现在用VC#跟这个库做了一个可以查看指定坐标村子名称以及资源田分布的命令行东东。 </p>
<p>&nbsp;&nbsp; 今天是6.1儿童节，不禁又想到那些苦难的孩子们，儿童节快乐。放出的图片是10年前那个弱小的我。</p>
<p>&nbsp;&nbsp; 本周收藏：</p>
<ul>
    <li><a href="http://www.dapenti.com/blog/more.asp?name=xilei&amp;id=12662" target="_blank">今日图说：老外教灾区孩子们打&#8220;猴拳&#8221;</a></li>
    <li><a href="http://www.kenengba.com/post/448.html" target="_blank">中国红十字会如何成为了网民的公敌？</a></li>
    <li><a href="http://blog.sina.com.cn/s/blog_473f90ad01009wm7.html" target="_blank">08.06.01　葬</a> 默哀</li>
    <li><a href="http://www.cnblogs.com/yice/archive/2008/06/01/1211629.html" target="_blank">需求的陷阱 |博客园-小余</a>&nbsp;</li>
    <li><a href="http://www.u148.net/article_1313.html" target="_blank">小孩节，大礼包（系列游戏篇）</a> 点来点去的场景类解谜游戏，攻略也比较全</li>
    <li><a href="http://www.cnblogs.com/allenlooplee/archive/2008/06/01/1211520.html" target="_blank">我眼中的C# 3.0 Allen Lee</a></li>
    <li><a href="http://www.luoyonghao.net/blogs/luoyonghao/archives/121748.aspx" target="_blank">基本上没有文字1</a>&nbsp;<a href="http://www.luoyonghao.net/blogs/luoyonghao/archives/121749.aspx" target="_blank">2</a> <a href="http://www.luoyonghao.net/blogs/luoyonghao/archives/121750.aspx" target="_blank">3</a> 老罗发的一些灾区照片</li>
    <li><a href="http://www.u148.net/article_1311.html" target="_blank">小孩节，大礼包（怀旧篇）</a></li>
    <li><a href="http://robertmao.com/archives/748" target="_blank">鸵鸟算法：Google earth的未来和谐版</a> 这个比喻很有趣</li>
    <li><a href="http://item.feedsky.com/%7Efeedsky/iamting/%7E6114279/80023848/1233514/1/item.html" target="_blank">哦，那一去不返的童年时光[枣读六一特刊]</a></li>
    <li><a href="http://item.feedsky.com/%7Efeedsky/2maomao/%7E1233821/79174042/1237018/1/item.html" target="_blank">精华文章及状态更新&nbsp; |半瓶墨水</a></li>
    <li><a href="http://jandan.net/2008/05/27/56_types_of_geeks.html" target="_blank">56种不同的Geek|jandan</a></li>
    <li><a title="http://www.example-code.com/" href="http://www.example-code.com/" target="_blank">Chilkat Example Code</a> Chilkat库的傻瓜教程</li>
    <li><a href="http://groups.google.com/group/pongba/browse_thread/thread/828fad78904d2518?hl=zh-CN" target="_blank">从张志强的阅微堂转载来的一堆题目 - TopLanguage | Google 网上论坛</a></li>
    <li><a href="http://www.cnblogs.com/anytao/archive/2008/05/28/must_net_20.html" target="_blank">[你必须知道的.NET]第二十回：学习方法论 - Anytao - 博客园</a></li>
    <li><a href="http://www.cfcl.com/vlb/h/fontmono.html" target="_blank">Fixed-width fonts</a>&nbsp; <a href="http://www.lowing.org/fonts/" target="_blank">Monospace/Fixed Width Programmer's Fonts</a>&nbsp;</li>
    <li><a href="http://keithdevens.com/wiki/ProgrammerFonts" target="_blank">Keith Devens .com - Programming Fonts</a> 编程用的等宽字体，总有一款你喜欢</li>
</ul>
<p>&nbsp;&nbsp; 下周继续面对那些个考试，去忙了。如果有朋友有学习更多HTTP编程应用的资料麻烦推荐给我，很想好好学学。&nbsp;&nbsp; <br></p><img src ="http://www.cppblog.com/gohan/aggbug/51852.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-06-01 23:44 <a href="http://www.cppblog.com/gohan/archive/2008/06/01/51852.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GWeekly[17] = 灰色的一周</title><link>http://www.cppblog.com/gohan/archive/2008/05/25/51084.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Sun, 25 May 2008 15:04:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/05/25/51084.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/51084.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/05/25/51084.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/51084.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/51084.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp; 三天的哀悼日，几乎所有的网站色调都成了灰色，而我这整整一周也如同灰色。<img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="100" alt="4" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/GWeekly17_132E1/4_d93cf812-1def-4e67-b74c-e43bc82d7b23.jpg" width="100" align="right" border="0"> 做了许多灰色的梦，手头做的事物也都有点没了动力。受到地震预测的影响，本周应该进行的考试推迟一周，周二停课一天，学习也就懈怠了。也就在这几日，继刘慈欣的三体之后，又看了他的几部短片作品，几乎每部都涉及天上的星星，有些想法甚是巧妙，和我以前的想象产生共鸣，而又比我的想象成熟具体的多了。预测地震的消息是这周一发布的，晚上许多人去操场睡了，从宿舍楼都能听见外面嘈杂的声音，在外面睡觉我觉得不怎么靠谱。<font color="#ffffff">向往在一个安静的夜晚，静静躺在草地上，遥望满天星星，随着无限自然的想象，慢慢睡去，这样应该挺舒服的。</font></p> <p>&nbsp;&nbsp; 这周了解了一下UTF8编码跟汉字GB2312(C++对于汉字好像默认是这个编码)有一些初步了解，用ATL里的<a href="http://msdn.microsoft.com/en-us/library/a58y3a65(VS.80).aspx" target="_blank">CAtlHttpClient</a>用了一下fanfou的api，需要basic授权而使用ATL提供的方式好像困难重重，感觉反而不如自己构造这些发送参数。周末学用vc++进行了一些GDI+Bitmap类对jpg,bmp的简单处理。</p> <ul> <li><a href="http://msdn.microsoft.com/en-us/library/f3wxbf3f%28VS.80%29.aspx" target="_blank">HttpClient Sample: HTTP Client Services Demonstration</a></li> <li><a href="http://en.wikipedia.org/wiki/UTF-8#Windows" target="_blank">UTF-8 - Wikipedia, the free encyclopedia</a></li> <li><a href="http://www.pconline.com.cn/pcedu/empolder/gj/other/0505/616631_1.html" target="_blank">程序员趣味读物：谈谈Unicode编码　[其它平台]</a></li></ul> <p>&nbsp;&nbsp; 一直在关注<a href="http://www.bullog.cn/default.aspx" target="_blank">牛博网</a>为灾区做的爱心救助工作，这个<a href="http://www.bullog.cn/blogs/laoluo/archives/139808.aspx" target="_blank">苗圃行动</a>我觉得挺靠谱的，感觉在募捐这方面，官方的<a href="http://www.cnbeta.com/articles/56420.htm" target="_blank">红十字会做的</a>真的没这些NGO做的好。周末看了几部动画片，<a href="http://www.douban.com/subject/1293318/" target="_blank">萤火虫之墓</a>这部动画让我觉得有点难过，联想起因为灾难成为孤儿的孩子，要好好活着真不容易。</p> <p>&nbsp;&nbsp; 本周收藏：</p> <ul> <li><a href="http://www.infzm.com/topic/beichuanstory.shtml" target="_blank">震后寻亲，让我们将生死铭记！ - 专题 - 南方周末</a></li> <li><a href="http://family.mblogger.cn/berlinf/posts/138745.aspx" target="_blank">募捐|黑三角</a></li> <li><a href="http://kisshi.com/2008/05/22/storyofcctv/" target="_blank">CCTV等记者在地震救人现场捣蛋添乱的几个故事|河蟹娱乐</a> 以此为鉴吧</li> <li><a href="http://www.imxl.net/tools/installshield-iscabvu/" target="_blank">InstallShield 解包工具</a> 提前查看安装程序的内容</li> <li><a href="http://www.verycd.com/topics/279498/" target="_blank">《FPS 游戏制作大师》(FPS Creator X10 v1.09)[ISO]|VeryCD</a> 对这个有些好奇，不过我的机器是不能用了</li> <li><a href="http://www.u148.net/article_1296.html" target="_blank">一个很无聊的长篇|U148</a> 破喉咙救公主的趣文，好像这个更长一些</li> <li><a href="http://www.michaelbach.de/ot/" target="_blank">Optical Illusions and Visual Phenomena</a> 许多视觉幻象</li> <li><a href="http://blog.codingnow.com/cloud/HomePage" target="_blank">云风的个人空间 : 首页</a> 那些日子连载完毕了</li> <li><a href="http://blog.donews.com/keepwalking/archive/2008/05/24/1295130.aspx" target="_blank">链接不说话：啊呀，帐篷 - keepwalking - DonewsBlog</a> 有些链接好像已经被和谐了，救灾物资分配应该更加合理</li> <li><a href="http://news.therecord.com/article/354044" target="_blank">TheRecord.com - CanadaWorld - WCI student isolates microbe that lunches on plastic bags</a> 吞噬塑料的细菌被一个高中生搞了出来</li> <li><a href="http://www.bullog.cn/blogs/buchong/archives/140359.aspx#" target="_blank">多么牛B的校长（zt)</a> 因为这位校长，桑枣中学全部2000多位师生无一伤亡。</li></ul> <p>&nbsp;&nbsp; 灰色的一周就说这么多，希望下周是32位真彩色的。。下周再叙</p><img src ="http://www.cppblog.com/gohan/aggbug/51084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-05-25 23:04 <a href="http://www.cppblog.com/gohan/archive/2008/05/25/51084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Win32命令行应用，ReadConsoleInput()得到键盘VK_CODE</title><link>http://www.cppblog.com/gohan/archive/2008/05/23/50817.html</link><dc:creator>Gohan</dc:creator><author>Gohan</author><pubDate>Thu, 22 May 2008 16:08:00 GMT</pubDate><guid>http://www.cppblog.com/gohan/archive/2008/05/23/50817.html</guid><wfw:comment>http://www.cppblog.com/gohan/comments/50817.html</wfw:comment><comments>http://www.cppblog.com/gohan/archive/2008/05/23/50817.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/gohan/comments/commentRss/50817.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gohan/services/trackbacks/50817.html</trackback:ping><description><![CDATA[<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="212" alt="image" src="http://www.cppblog.com/images/cppblog_com/gohan/WindowsLiveWriter/ea02b9b086ac_14D84/image_ac262c63-9d15-4cce-9682-be9aa7bb922f.png" width="269" align="right" border="0"></p> <p>&nbsp;&nbsp;&nbsp; ReadConsoleInput是一个Win32 API，&nbsp; 声明如下：</p> <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 54%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas,'Courier New',courier,monospace; height: 142px; background-color: #f4f4f4"> <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">BOOL ReadConsoleInput(</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">  HANDLE hConsoleInput, <span style="color: #008000">//输入句柄</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">  PINPUT_RECORD lpBuffer, <span style="color: #008000">//指向INPUT_RECORD结构体(数组)的指针</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">  DWORD nLength, <span style="color: #008000">//上面那个结构体的大小</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">  LPDWORD lpNumberOfEventsRead <span style="color: #008000">//实际读入输入内容的个数</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">);</pre></div></div>
<p>&nbsp;&nbsp;&nbsp; 我把读入的功能写在这个助手类中，ReadConsoleInput的得到VK_CODE的方法可以看ReadKeyDown和ReadKeyPush两个函数，它们的效果略有点不同。右图是效果截图，按ESC跳出循环。助手类以后还可以添加颜色控制位置控制等功能，只要你想，目的就是为了简化API调用。</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #cc6633">#pragma</span> once</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">#include &lt;Windows.h&gt;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff">class</span> GohanConsoleHelper</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">{</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    HANDLE _hIn;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    HANDLE _hOut;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    INPUT_RECORD _InRec;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    DWORD _NumRead;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff">public</span>:</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    WORD VKey;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    GohanConsoleHelper(<span style="color: #0000ff">void</span>){</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        _hIn = GetStdHandle(STD_INPUT_HANDLE);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        _hOut = GetStdHandle(STD_OUTPUT_HANDLE);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        VKey=0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    <span style="color: #0000ff">bool</span> ReadOneInput()</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">return</span> 0!=ReadConsoleInput(_hIn,&amp;_InRec,1,&amp;_NumRead);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    <span style="color: #0000ff">bool</span> ReadOneInput(INPUT_RECORD&amp; InRec)</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">return</span> 0!=ReadConsoleInput(_hIn,&amp;InRec,1,&amp;_NumRead);</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    DWORD ReadKeyDown()</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">if</span>(!ReadConsoleInput(_hIn,&amp;_InRec,1,&amp;_NumRead))</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">return</span> 0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">if</span>(_InRec.EventType!=KEY_EVENT)</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">return</span> 0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">if</span>(_InRec.Event.KeyEvent.bKeyDown &gt; 0)</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">return</span> 0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        VKey = _InRec.Event.KeyEvent.wVirtualKeyCode;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        <span style="color: #0000ff">return</span> VKey;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    DWORD ReadKeyPush()</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        <span style="color: #0000ff">if</span>(!ReadConsoleInput(_hIn,&amp;_InRec,1,&amp;_NumRead))</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">return</span> 0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        <span style="color: #0000ff">if</span>(_InRec.EventType!=KEY_EVENT)</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">return</span> 0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        <span style="color: #0000ff">if</span>(_InRec.Event.KeyEvent.bKeyDown == 0)</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">return</span> 0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        VKey = _InRec.Event.KeyEvent.wVirtualKeyCode;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">return</span> VKey;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">public</span>:</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    ~GohanConsoleHelper(<span style="color: #0000ff">void</span>){}</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">};</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">&nbsp;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">&nbsp;</pre></div></div>
<p>&nbsp;</p>
<p>main所在文件内容</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">#include &lt;windows.h&gt;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">#include &lt;iostream&gt;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">#include <span style="color: #006080">"GohanConsoleHelper.h"</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">using</span> <span style="color: #0000ff">namespace</span> std;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff">int</span> main()</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">{</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    GohanConsoleHelper gch;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    <span style="color: #0000ff">while</span> (<span style="color: #0000ff">true</span>)</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">if</span>(gch.ReadKeyPush()!=0) <span style="color: #008000">//使用ReadKeyDown()捕获按键弹起的VK_CODE</span></pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">if</span>(gch.VKey != VK_ESCAPE)</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">                cout&lt;&lt;<span style="color: #006080">"VK_CODE == "</span>&lt;&lt;gch.VKey&lt;&lt;endl;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">else</span> {</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">                cout&lt;&lt;<span style="color: #006080">"Bye~~"</span>&lt;&lt;endl;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">                <span style="color: #0000ff">break</span>;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    }</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    <span style="color: #0000ff">return</span> 0;</pre><pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas,'Courier New',courier,monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre></div></div>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 在命令行得到VK_CODE可以干许多事情了，可以写个在Win32命令行下的小游戏，俄罗斯方块啊什么的，呵呵，不过画面稍微好点的就搞不了了，因为毕竟win32命令行分辨率太低了。</p>
<p>&nbsp;&nbsp; 忘了放出参考的资料：</p>
<p><a title="http://adrianxw.dk/" href="http://adrianxw.dk/">http://adrianxw.dk/</a> 比较全面的Win32命令行教程</p><img src ="http://www.cppblog.com/gohan/aggbug/50817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gohan/" target="_blank">Gohan</a> 2008-05-23 00:08 <a href="http://www.cppblog.com/gohan/archive/2008/05/23/50817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>