﻿<?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++博客-to myself 的分类学习日志-随笔分类-windows programming</title><link>http://www.cppblog.com/tomyself/category/14406.html</link><description>做自己想做的事</description><language>zh-cn</language><lastBuildDate>Tue, 25 Jun 2013 13:49:50 GMT</lastBuildDate><pubDate>Tue, 25 Jun 2013 13:49:50 GMT</pubDate><ttl>60</ttl><item><title>Windows编程点滴2011.8~2013.6</title><link>http://www.cppblog.com/toMyself/archive/2013/06/25/201291.html</link><dc:creator>kongkongzi</dc:creator><author>kongkongzi</author><pubDate>Tue, 25 Jun 2013 06:23:00 GMT</pubDate><guid>http://www.cppblog.com/toMyself/archive/2013/06/25/201291.html</guid><wfw:comment>http://www.cppblog.com/toMyself/comments/201291.html</wfw:comment><comments>http://www.cppblog.com/toMyself/archive/2013/06/25/201291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/toMyself/comments/commentRss/201291.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/toMyself/services/trackbacks/201291.html</trackback:ping><description><![CDATA[&nbsp; 
<div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">1. dump文件的生成：参考MiniDumper.h和MiniDumper.cpp。<a style="color: " href="/Files/toMyself/MiniDumper.zip">/Files/toMyself/MiniDumper.zip</a></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">2. Windows DLL、COM、EXE的发布：版本属性的更新、版本信息在日志中的打印，打印代码参考：</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#pragma comment(lib, "version.lib")</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; &nbsp;char* fileName = "test.dll";<br />&nbsp;&nbsp;&nbsp;&nbsp; DWORD handle = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp; DWORD size = GetFileVersionInfoSize(fileName, &amp;handle);<br />&nbsp;&nbsp;&nbsp;&nbsp; BYTE* versionInfo = new BYTE[size];<br />&nbsp;&nbsp;&nbsp;&nbsp; if (GetFileVersionInfo(fileName, handle, size, versionInfo))<br />&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UINT&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; len = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VS_FIXEDFILEINFO*&nbsp;&nbsp; vsfi = NULL;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VerQueryValue(versionInfo, "\\", (void**)&amp;vsfi, &amp;len);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WORD aVersion[4];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aVersion[0] = HIWORD(vsfi-&gt;dwFileVersionMS);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aVersion[1] = LOWORD(vsfi-&gt;dwFileVersionMS);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aVersion[2] = HIWORD(vsfi-&gt;dwFileVersionLS);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aVersion[3] = LOWORD(vsfi-&gt;dwFileVersionLS);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XINFO("test.dll version is %d.%d.%d.%d", aVersion[0], aVersion[1], aVersion[2], aVersion[3]);<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; delete[] versionInfo;</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">3. Windows上安装程序的创建工具：NSIS，示例脚本参考TestServer_microsoft.nsi。</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">4. Windows DLL的设计：一般包括四个全局函数：Init、Terminate、CreateObject、DestroyObject，和一个接口类：没有成员变量，成员函数都为纯虚函数。 设计目标：动态加载这个DLL时，能够重复地、没有内存泄露地实现LoadLibrary-&gt;Init-&gt;CreateObject和DestroyObject-&gt;Terminate-&gt;FreeLibrary。</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">5. Windows多线程程序的设计：线程的封装，参考代码</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">6. Windows ActiveX的设计：</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">7. Windows COM的设计：连接点事件的实现</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">8. 为64bit的exe封装32bit的dll：</div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><font face="新宋体">TestInterfaceCom<span style="color: rgb(1,1,1)">.idl：</span></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font color="#010101" face="新宋体">[</font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span>&nbsp;</span><font color="#0000ff">uuid</font><font color="#010101">(BC4127B7-9353-4E7F-B975-01846CA706A1),</font></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span>&nbsp;</span><font color="#0000ff">version</font><font color="#010101">(1.0),</font></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span>&nbsp;</span><font color="#0000ff">helpstring</font><font color="#010101">(</font><font color="#a31515">"</font>TestInterfaceCom<font color="#a31515">&nbsp;1.0 Type Library"</font><span>&nbsp;</span><font color="#010101">)</font></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font color="#010101" face="新宋体">]</font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体"><font color="#0000ff">library&nbsp;</font>&nbsp;TestInterfaceCom<font color="#010101">Lib</font></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font color="#010101" face="新宋体"><br /></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font color="#010101" face="新宋体"><br /></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left">
<div style="font-size: 12px" align="left"><font color="#010101" face="新宋体">&nbsp; &nbsp; &nbsp; &nbsp; [</font></div>
<div style="font-size: 12px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span>&nbsp;</span><font color="#0000ff">uuid</font><font color="#010101">(865D32D9-8A37-4EE5-B4AB-C805893FD312),</font></font></div>
<div style="font-size: 12px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span>&nbsp;</span><font color="#0000ff">helpstring</font><font color="#010101">(</font><font color="#a31515">"</font>TestInterfaceObj<font color="#a31515">&nbsp;Class"</font><span>&nbsp;</span><font color="#010101">)</font></font></div>
<div style="font-size: 12px" align="left"><font color="#010101" face="新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]</font></div>
<div style="font-size: 12px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span>&nbsp;</span><font color="#0000ff">coclass</font>&nbsp;TestInterfaceObj</font></div>
<div style="font-size: 12px" align="left"><font color="#010101" face="新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</font></div>
<div style="font-size: 12px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</font><span>&nbsp;</span><font color="#0000ff">default</font><font color="#010101">]</font><span>&nbsp;</span><font color="#0000ff">interface</font><span>&nbsp;</span><font color="#010101">I</font>TestInterfaceObj<font color="#010101">;</font></font></div>
<div style="font-size: 12px" align="left"><font face="新宋体"><font color="#010101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[</font><span>&nbsp;</span><font color="#0000ff">default</font><font color="#010101">,</font><span>&nbsp;</span><font color="#0000ff">source</font><span>&nbsp;</span><font color="#010101">]</font><span>&nbsp;</span><font color="#0000ff">dispinterface</font><span>&nbsp;</span><font color="#010101">_I</font>TestInterfaceObj<font color="#010101">Events;</font></font></div>
<div style="font-size: 12px" align="left"><font color="#010101" face="新宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};</font></div></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font color="#010101" size="1" face="新宋体"><span style="font-size: 9pt"><br /></span></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: medium Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left">&nbsp; 
<div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体">HKEY_CLASSES_ROOT\TypeLib\{BC4127B7-9353-4E7F-B975-01846CA706A1}</font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体">HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{865D32D9-8A37-4EE5-B4AB-C805893FD312}\LocalServer32</font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体">HKEY_CLASSES_ROOT\Wow6432Node\TypeLib\{BC4127B7-9353-4E7F-B975-01846CA706A1}<br /></font></div></div></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体"><br /></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体">参考：</font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体">1.&nbsp;<span style="color: rgb(51,51,51); line-height: 24px; background-color: rgb(255,255,255)">《COM技术内幕》</span></font></div>
<div style="white-space: normal; text-transform: none; word-spacing: 0px; color: rgb(0,0,0); font: 12px Tahoma; orphans: 2; widows: 2; letter-spacing: normal; text-indent: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><font face="新宋体"><span style="color: rgb(51,51,51); line-height: 24px; background-color: rgb(255,255,255)">2.&nbsp;</span><span style="color: rgb(1,1,1)">Accessing 32-bit DLLs from 64-bit&nbsp;code:&nbsp;</span><a href="http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/"></a><a href="http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/">http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/</a></font></div><br /></div><img src ="http://www.cppblog.com/toMyself/aggbug/201291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/toMyself/" target="_blank">kongkongzi</a> 2013-06-25 14:23 <a href="http://www.cppblog.com/toMyself/archive/2013/06/25/201291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows完成端口</title><link>http://www.cppblog.com/toMyself/archive/2010/11/22/134248.html</link><dc:creator>kongkongzi</dc:creator><author>kongkongzi</author><pubDate>Sun, 21 Nov 2010 16:24:00 GMT</pubDate><guid>http://www.cppblog.com/toMyself/archive/2010/11/22/134248.html</guid><wfw:comment>http://www.cppblog.com/toMyself/comments/134248.html</wfw:comment><comments>http://www.cppblog.com/toMyself/archive/2010/11/22/134248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/toMyself/comments/commentRss/134248.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/toMyself/services/trackbacks/134248.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: #include&nbsp;&lt;winsock2.h&gt;#include&nbsp;&lt;windows.h&gt;#include&nbsp;&lt;stdio.h&gt;#pragma&nbsp;comment(lib,&nbsp;"Ws2_32")#define&nbsp;BUFFER_SIZE&nbsp;1024typedef&nbsp;struct&nbsp;_PER_HAND...&nbsp;&nbsp;<a href='http://www.cppblog.com/toMyself/archive/2010/11/22/134248.html'>阅读全文</a><img src ="http://www.cppblog.com/toMyself/aggbug/134248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/toMyself/" target="_blank">kongkongzi</a> 2010-11-22 00:24 <a href="http://www.cppblog.com/toMyself/archive/2010/11/22/134248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Source Codes cross platforms</title><link>http://www.cppblog.com/toMyself/archive/2010/09/11/126403.html</link><dc:creator>kongkongzi</dc:creator><author>kongkongzi</author><pubDate>Sat, 11 Sep 2010 05:50:00 GMT</pubDate><guid>http://www.cppblog.com/toMyself/archive/2010/09/11/126403.html</guid><description><![CDATA[<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#ifdef&nbsp;WIN32<br>#&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Windows.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#else</span><span style="COLOR: #000000"><br>#&nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">unistd.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br>typedef&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;uint32;<br><br>inline&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;sleepms(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ms)<br>{<br>#ifdef&nbsp;WIN32<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::Sleep(&nbsp;uint32(ms)&nbsp;);<br></span><span style="COLOR: #0000ff">#else</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::usleep(ms&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br>}<br></span></div>
<br><br>
<img src ="http://www.cppblog.com/toMyself/aggbug/126403.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/toMyself/" target="_blank">kongkongzi</a> 2010-09-11 13:50 <a href="http://www.cppblog.com/toMyself/archive/2010/09/11/126403.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC编译错误</title><link>http://www.cppblog.com/toMyself/archive/2010/09/11/126401.html</link><dc:creator>kongkongzi</dc:creator><author>kongkongzi</author><pubDate>Sat, 11 Sep 2010 05:30:00 GMT</pubDate><guid>http://www.cppblog.com/toMyself/archive/2010/09/11/126401.html</guid><description><![CDATA[<p><strong>收集各种崩溃错误及其解决办法<br><br>一、</strong><br>出错触发：<br>&nbsp;增加了一个第三方库（G3D)。<br>错误输出：<br>&nbsp;unresolved external symbol "__declspec(dllimport) public: __thiscall std::exception::exception(void)"<br>&nbsp;unresolved external symbol __imp__strncpy<br>&nbsp;unresolved external symbol __imp__memmove_s</p>
<p>解决办法：<br>&nbsp;Try ignoring msvcrt.lib and linking in libcmt.lib?<br>&nbsp;I finally got my /MD to run against the problem that I had. <br>&nbsp;I removed 'msvcrt.lib' from my Ignore Specific Library list (under the release options).<br>&nbsp;Have you set your debug build to use multi threaded debug dll?<br>&nbsp;ignoring: libcmtd.lib&nbsp; msvcprtd.lib</p>
<p>&nbsp;LNK2005: &lt;...&gt; already defined in LIBCD.lib(osfinfo.obj)<br>&nbsp;Your libraries are mismatched: singlethreaded/multithreaded/multithreaded dll. <br>&nbsp;Check your compiler options to make sure you are using 'Multithreaded Debug DLL' (or /MDd) for debug builds <br>&nbsp;and 'Multithreaded DLL' (or /MD) for release builds. (MSVC: in project settings under C++ &gt; Code Generation). <br></p>
G3D里有下面的定义，注释掉就可以了。<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#ifdef&nbsp;_DEBUG<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment&nbsp;(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:libc.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment&nbsp;(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:libcmt.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment&nbsp;(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:msvcrt.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment&nbsp;(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:libcd.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment&nbsp;(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:msvcrtd.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #0000ff">#else</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:LIBC.LIB</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:msvcrt.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:libcd.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:libcmtd.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;#pragma&nbsp;comment(linker,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/NODEFAULTLIB:msvcrtd.lib</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #0000ff">#endif</span></div>
<br><br><br>
<img src ="http://www.cppblog.com/toMyself/aggbug/126401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/toMyself/" target="_blank">kongkongzi</a> 2010-09-11 13:30 <a href="http://www.cppblog.com/toMyself/archive/2010/09/11/126401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows编程细节</title><link>http://www.cppblog.com/toMyself/archive/2010/08/03/122039.html</link><dc:creator>kongkongzi</dc:creator><author>kongkongzi</author><pubDate>Tue, 03 Aug 2010 02:44:00 GMT</pubDate><guid>http://www.cppblog.com/toMyself/archive/2010/08/03/122039.html</guid><description><![CDATA[<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">网络程序忘了链接ws2_32.lib，报了很多错误：<br>error&nbsp;LNK2001:&nbsp;unresolved&nbsp;external&nbsp;symbol&nbsp;__imp__WSAGetLastError@0<br>&#8230;&#8230;</span></div>
<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">在缺省情况下，C编译器为每一个变量或是数据单元按其自然对界条件分配空间。一般地，可以通过下面的方法来改变缺省的对界条件：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#183;&nbsp;使用伪指令#pragma&nbsp;pack&nbsp;(n)，C编译器将按照n个字节对齐。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#183;&nbsp;使用伪指令#pragma&nbsp;pack&nbsp;()，取消自定义字节对齐方式。</span></div>
<br>
<img src ="http://www.cppblog.com/toMyself/aggbug/122039.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/toMyself/" target="_blank">kongkongzi</a> 2010-08-03 10:44 <a href="http://www.cppblog.com/toMyself/archive/2010/08/03/122039.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>