<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_floerggyy</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/7154/rss</id><updated>2010-06-30T15:40:11Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/7154/rss"/><entry><id>http://www.cnblogs.com/floerggyy/archive/2010/06/30/1768753.html</id><title type="text">vs下调试多个c项目联调</title><summary type="text">一．Debug版本和Release版本的区别Debug通常称为调试版本，它包含调试信息，并且不作任何优化，便于程序员调试程序。Release称为发布版本，它往往是进行了各种优化，使得程序在代码大小和运行速度上都是最优的，以便用户很好地使用。只有Debug版本的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句。Release版本不包含任何调试信息，所以体积小、运行速度快。一般而...</summary><published>2010-06-30T15:40:00Z</published><updated>2010-06-30T15:40:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2010/06/30/1768753.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2010/06/30/1768753.html"/><content type="html">&lt;span style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;一．Debug版本和Release版本的区别&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;Debug通常称为调试版本，它包含调试信息，并且不作任何优化，便于程序员调试程序。Release称为发布版本，它往往是进行了各种优化，使得程序在代码大小和运行速度上都是最优的，以便用户很好地使用。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;只有Debug版本的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句。Release版本不包含任何调试信息，所以体积小、运行速度快。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;一般而言Debug版本会比Release版本多出*.ilk文件和*.pdb文件。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;1.*.ilk文件&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;ilk后缀全称为&amp;#8220;Incremental Linking&amp;#8221;，意即增量链接。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;VC6中，&amp;#8220;Project Setting &amp;#224; Link （Category：General）&amp;#8221;默认勾选&amp;#8220;Link incrementally&amp;#8221;；相应VC2005中，&amp;#8220;项目属性&amp;#224;配置属性&amp;#224;链接器&amp;#224;常规&amp;#224;启用增量链接&amp;#8221;默认选项为&amp;#8220;是(/INCREMENTAL)&amp;#8221;。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;当选定渐增型编译链接时，链接器自动生成ILK文件，记录链接信息，也就是每次重新编译并不编译所有的源文件，只编译改动过的文件。而编译器怎么知道哪些编译过哪些未编译过呢，除了检查修改时间外，这个ilk文件也是很重要的信息。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;2.*.pdb文件&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;pdb后缀全称为&amp;#8220;Program Debug Database&amp;#8221;，意即程序数据库文件。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;VC6中，&amp;#8220;Project Setting &amp;#224; Link （Category：General）&amp;#8221;默认勾选&amp;#8220;Generate debug info&amp;#8221;, &amp;#8220;Project Setting &amp;#224; Link （Category：Customize）&amp;#8221;默认勾选&amp;#8220;Use program database&amp;#8221;；相应VC2005中，&amp;#8220;项目属性&amp;#224;配置属性&amp;#224;链接器&amp;#224;调试&amp;#8221;，默认&amp;#8220;生成调试信息&amp;#8221;选项为&amp;#8220;是(/DEBUG)&amp;#8221;，默认&amp;#8220;生成程序数据库文件&amp;#8221;处填写&amp;#8220;.\Debug\*.pdb&amp;#8221;。该选项对应的编译开关为/PDB。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;符号文件（Symbol Files）是一个数据信息文件，它包含了应用程序二进制文件（比如EXE、DLL等）的调试信息，专门用来作调试之用，最终生成的可执行文件在运行时并不需要这个符号文件，但你的程序中所有的变量信息都记录在这个文件中。所以调试应用程序时，这个文件是非常重要的。用VC和 WinDbg调试程序时都要用到这个文件。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;关于符号文件，参考《符号文件&amp;#8212;Windows 应用程序调试必备》。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;二．VC常用调试操作&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;快捷键&lt;br /&gt;&amp;nbsp;作用&lt;br /&gt;&amp;nbsp;&lt;br /&gt;F5&lt;br /&gt;&amp;nbsp;开始调试，逐断点调试&lt;br /&gt;&amp;nbsp;&lt;br /&gt;F9&lt;br /&gt;&amp;nbsp;设置（取消）断点&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Ctrl＋F10&lt;br /&gt;&amp;nbsp;调试到光标所在位置&lt;br /&gt;&amp;nbsp;&lt;br /&gt;F10&lt;br /&gt;&amp;nbsp;单步调试，遇到子函数跳过&lt;br /&gt;&amp;nbsp;&lt;br /&gt;F11&lt;br /&gt;&amp;nbsp;单步调试，遇到子函数跟踪进入内部&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Shift＋F11&lt;br /&gt;&amp;nbsp;从当前函数中跳出&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Shift+F5&lt;br /&gt;&amp;nbsp;停止调试&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;一般F9设断点，F5启动后，F10、F11和Shift＋F11交替使用，以在多个断点处调试。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;三．联合调试链接库（lib、dll）项目和应用程序（exe）项目？&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;对于链接库项目，必须要导入一个能够调用它的测试程序进来，通过应用程序的执行来达到调试的目的。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;既然是调试，当然静态或动态链接库项目应生成带调试信息的Debug版本，VC6中&amp;#8220;Project Setting &amp;#224; Link （Category：General）&amp;#8221;默认勾选&amp;#8220;Generate debug info&amp;#8221;，相应VC2005中的&amp;#8220;项目属性&amp;#224;配置属性&amp;#224;链接器&amp;#224;调试&amp;#224;生成调试信息&amp;#8221;默认选项为&amp;#8220;是(/DEBUG)&amp;#8221;。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;关于*.obj文件和*.lib文件&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;obj：Intermediate file，CPP对应的二进制代码格式，是未经重定位的！&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;lib：Object File Library，若干个obj的集合，本质与obj相同！&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;使用时，obj和lib是没有本质区别的，lib就是obj，使用lib地方都可以使用obj。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;对于*.cpp文件中的static变量或函数，在*.obj或*.lib中既有符号信息又有实体定义。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;对于*.cpp文件中的extern变量或函数，在*.obj或*.lib中一般都会有符号信息，实体既可以定义在本文件中，也可以在其他文件中定义。对于extern变量或函数，链接时，将在所有的*.obj或*.lib中查找实体。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;Lib和Exe协调：&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;新建解决方案D:\ LibDemo\LibDemo(.dsw,.sln)，在其下新建静态库（Win32 Static Library）项目MyLib（.dsp,.vcproj）和静态库测试项目（Win32 Console Application）MyLibDemo（.dsp,.vcproj）。首先需要为MyLibDemo项目附加头文件包含和链接库包含。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;（1）若设置MyLibDemo为启动项目，执行F5调试命令，则在MyLib和MyLibDemo中的断点处都会暂停。在MyLibDemo中可F11进入MyLib中的函数定义处。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;（2）若设置MyLib为启动项目，则要配置外部exe调用程序：&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;VC6中，&amp;#8220;Project Setting &amp;#224;Debug（Category：General）&amp;#8221;中的&amp;#8220;Executable for debug session&amp;#8221;处填写exe路径，例如：D:\ LibDemo\MyLibDemo\Debug\MyLibDemo.exe。相应VC2005中，&amp;#8220;项目属性&amp;#224;配置属性&amp;#224;调试&amp;#224;命令&amp;#8221;处填写exe路径。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;执行F5调试命令，则在MyLib和MyLibDemo中的断点处都会暂停。效果同（1）。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;对于不同解决方案(.dsw,.sln)下的Lib项目和Exe项目协同调试方法同上。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;Dll和Exe协调：&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;dll项目往往会附带生成一个对应的lib，是dll导出函数和符号链接信息。同lib项目生成的lib有点不同，这里只有原型信息，实体代码在dll中。dll是可实际运行的二进制代码，其中有定位代码。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;新建解决方案D:\DllDemo\DllDemo(.dsw,.sln)，在其下新建动态库（Win32 Dynamic-Link Library）项目MyDll（.dsp,.vcproj）和动态库测试项目（Win32 Console Application）MyDllDemo（.dsp,.vcproj）。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;同Lib和Exe协调一样，首先需要为Exe项目附加头文件（.h）包含和链接库（.lib）包含。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;（1）若设置MyDllDemo为启动项目，为了使MyDll.dll对调试exe可见，设置MyDllDemo的调试工作目录（Working directory）为..\MyDll\Debug。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;执行F5调试命令，则在MyDll和MyDllDemo中的断点处都会暂停。在MyDllDemo中可F11进入MyDll中的函数定义处。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;（2）若设置MyDll为启动项目，则要配置外部exe调用程序：&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;VC6中，&amp;#8220;Project Setting &amp;#224;Debug（Category：General）&amp;#8221;中的&amp;#8220;Executable for debug session&amp;#8221;处填写exe路径，例如：D:\DllDemo\MyDllDemo\Debug\MyDllDemo.exe。相应VC2005中，&amp;#8220;项目属性&amp;#224;配置属性&amp;#224;调试&amp;#224;命令&amp;#8221;处填写exe路径。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;为了使MyDll.dll对调试exe可见，设置调试工作目录（Working directory）为.\Debug。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;执行F5调试命令，则在MyDll和MyDllDemo中的断点处都会暂停。效果同（1）。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;对于不同解决方案(.dsw,.sln)下的Dll项目和Exe项目协同调试方法同上。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;在（1）和（2）中，除了指定调试工作目录外，还可以处理生成后事件，将生成的链接库文件直接复制到应用程序Debug目录下。具体的，在VC6中&amp;#8220;Project Setting &amp;#224;Post-built step&amp;#8221;或VC2005中&amp;#8220;项目属性&amp;#224;配置属性&amp;#224;生成事件&amp;#224;生成后事件&amp;#8221;输入生成后处理命令：copy .\Debug\MyDll.dll ..\MyDllDemo\Debug\MyDll.dll。当然，还可以将MyLib（MyDll）的输出目录直接指向MyLibDemo(MyDllDemo)的Debug下。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;四．VC调试小结&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;我们在VC2005中printf函数调用处设置断点，F11 将打开printf函数的源码文件C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\printf.c进入printf函数内部，实际上&amp;#8220;工具&amp;#224;选项&amp;#224;项目和解决方案&amp;#224;VC++目录&amp;#224;源文件&amp;#8221;中包含了crt源代码的路径：$(VCInstallDir)crt\src。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;而在VC6中，C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC不存在，故试图F11进入printf内部时，将弹出&amp;#8220;Find Source&amp;#8221;对话框，提示&amp;#8220;Please enter the path for PRINTF.C&amp;#8221;文件。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;调试VC时，编译器之所以能够跟踪进入C库函数，是因为编译器本身附带提供了Debug版本的CRT库。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;VC6中的MSVCRTD.DLL-MSVCRTD.LIB-MSVCRTD.PDB（对应VC2005中msvcr80d.dll-msvcrtd.lib）为C Runtime Library的Debug版本，其中包含了C运行库的调试信息。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;VC6中的MSVCP60D.DLL-MSVCPRTD.LIB-MSVCP60D.PDB（对应VC2005中msvcp80d.dll - msvcprtd.lib）为C++ Runtime Library的Debug版本，其中包含了C++运行库的调试信息。&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; "&gt;鉴于Debug版本对调试信息的记录和Dll&amp;#224;Lib(*.obj，*.lib)&amp;#224;Src(*.c，*.cpp)的对应关系，在VC中我们就可以设置断点跟踪调试代码。&lt;/p&gt;&lt;p&gt;本文来自CSDN博客，转载请标明出处：&lt;a href="http://blog.csdn.net/phunxm/archive/2010/01/17/5203931.aspx" style="text-decoration: none; color: #770000; " target="_blank"&gt;http://blog.csdn.net/phunxm/archive/2010/01/17/5203931.aspx&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/floerggyy/aggbug/1768753.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/floerggyy/archive/2010/06/30/1768753.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/06/11/1217386.html</id><title type="text">摘抄</title><summary type="text">从msdn里找到的 To  convert  the  managed  DLL  to  mixed  mode 1.Link  with  /NOENTRY.  In  Solution  Explorer,  right-click  the  project  node  and  click  Properties.  In  the  project's  Property  Page...</summary><published>2008-06-11T06:48:00Z</published><updated>2008-06-11T06:48:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/06/11/1217386.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/06/11/1217386.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/04/15/1154738.html</id><title type="text">C语言locale介绍</title><summary type="text">转载：http://www.chinaunix.net/jh/6/834459.htmllocale是国际化与本土化过程中的一个非常重要的概念，个人认为，对于中文用户来说，通常会涉及到的国际化或者本土化，大致包含三个方面：看中文，写中文，与window中文系统的兼容和通信。从实际经验上看来，locale的设定与看中文关系不大，但是与写中文，及window分区的挂载方式有很密切的关系。本人认为就像一...</summary><published>2008-04-15T09:53:00Z</published><updated>2008-04-15T09:53:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/04/15/1154738.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/04/15/1154738.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/04/05/1138455.html</id><title type="text">C语言宏定义总结</title><summary type="text">转自：http://topcool99.ycool.com/post.1797687.html宏定义了一个代表特定内容的标识符。预处理过程会把源代码中出现的宏标识符替换成宏定义时的值。宏最常见的用法是定义代表某个值的全局符号。宏的第二种用法是定义带参数的宏，这样的宏可以象函数一样被调用，但它是在调用语句处展开宏，并用调用时的实际参数来代替定义中的形式参数。 1.#define指令 #define ...</summary><published>2008-04-05T10:35:00Z</published><updated>2008-04-05T10:35:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/04/05/1138455.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/04/05/1138455.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/04/05/1138450.html</id><title type="text">原码、反码、补码</title><summary type="text">转自：http://homey123.ycool.com/post.2674427.html补码的设计目的是:⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计1、原码、反码和补码的表示方法（1） 原码： 在数值前直接加一符号位的表示法。 例如： 符号位数值位 [+7]原= 0 0000111B [-7]原= 1 0000111B...</summary><published>2008-04-05T10:30:00Z</published><updated>2008-04-05T10:30:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/04/05/1138450.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/04/05/1138450.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/04/01/1133353.html</id><title type="text">Endian的由来及big-edian 和little-endian</title><summary type="text">转载：http://www.eygle.com/digest/2007/01/whats_mean_endian.html一、引子　　在各种计算机体系结构中，对于字节、字等的存储机制有所不同，因而引发了计算机通信领域中一个很重要的问题，即通信双方交流的信息单元（比特、字节、字、双字等等）应该以什么样的顺序进行传送。如果不达成一致的规则，通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体...</summary><published>2008-04-01T11:14:00Z</published><updated>2008-04-01T11:14:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/04/01/1133353.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/04/01/1133353.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/03/30/1129811.html</id><title type="text">转载</title><summary type="text">当一个可执行程序exe在执行过程中，程序文件无法删除，这是因为系统将每个正在运行的程序对应的硬盘文件映射到内存，即虚拟内存，要实现自删除，关键一点在程序退出前将程序从内存映射中解放出来，然后再调用文件操作函数删除程序文件！typedef int (WINAPI *PFClose)(LPVOID); OSVERSIONINFO os_info; os_info.dwOSVersionInfoSize...</summary><published>2008-03-30T06:27:00Z</published><updated>2008-03-30T06:27:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/03/30/1129811.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/03/30/1129811.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/03/30/1129710.html</id><title type="text">zip文件格式</title><summary type="text">File: APPNOTE.TXT - .ZIP File Format SpecificationVersion: 6.3.2 Revised: September 28, 2007Copyright (c) 1989 - 2007 PKWARE Inc., All Rights Reserved.The use of certain technological aspects disclose...</summary><published>2008-03-30T04:18:00Z</published><updated>2008-03-30T04:18:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/03/30/1129710.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/03/30/1129710.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/03/16/1108523.html</id><title type="text">C 语言 相关资源 精选</title><summary type="text">语言标准及文档● ISO C99http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf● ANSI C Rationalehttp://www.quut.com/c/rat/title.htmlFAQ (常见问题)● comp.lang.c FAQhttp://c-faq.com/● C-FAQ 中文版http://c-faq-chn.s...</summary><published>2008-03-16T08:41:00Z</published><updated>2008-03-16T08:41:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/03/16/1108523.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/03/16/1108523.html"/></entry><entry><id>http://www.cnblogs.com/floerggyy/archive/2008/03/04/1089631.html</id><title type="text">zlib usage</title><summary type="text">We often get questions about how the deflate() and inflate() functions should be used.Users wonder when they should provide more input, when they should use more output,what to do with a Z_BUF_ERROR, ...</summary><published>2008-03-04T01:33:00Z</published><updated>2008-03-04T01:33:00Z</updated><author><name>floerggyy</name><uri>http://www.cnblogs.com/floerggyy/</uri></author><link rel="alternate" href="http://www.cnblogs.com/floerggyy/archive/2008/03/04/1089631.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/floerggyy/archive/2008/03/04/1089631.html"/></entry></feed>
