摘要: Visual C++.NET涉及到ATL/ATL Server、MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类型的字符串转换操作。本文先介绍基本字符串类型,然后说明相关的类,如CComBSTR、_bstr_t、CStringT等,最后讨论它们的转换方法,其中还包括使用最新ATL7.0的转换类和宏,如CA2CT、CA... 阅读全文
posted @ 2007-04-27 09:52 能巴 阅读(310) 评论(0) 推荐(0) 编辑
摘要: Kinds of debug informationDebug information formatsGenerating debug information (general)Generating debug information with Visual C++ 6.0Generating debug information with Visual C++.NET 2002 and 2003D... 阅读全文
posted @ 2007-04-26 09:49 能巴 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 程序员在建立一个DLL文件时,链接程序会自动生成一个与之对应的LIB导入文件。该lib文件包含了每一个DLL导出函数的符号名和可选的标识号,以及对应的DLL文件名(但不是完全的路径名),但是并不含有实际的代码。LIB文件在使用其对应dll的应用程序中被用于link阶段,应用程序中的调用函数与LIB文件中导出符号相匹配,这些符号或标识号进入到生成的EXE文件中。当应用程序运行过程中需要... 阅读全文
posted @ 2007-04-26 09:34 能巴 阅读(253) 评论(0) 推荐(0) 编辑
摘要: Visual Studio 2005 IDE 技巧和窍门 发布日期: 2007-02-26 | 更新日期: 2007-02-26 James Lau Microsoft 项目经理 适用于: Microsoft Visual Studio 2005 摘要:Visual Studio 2005 是目前业内一流的开发工具,我想在此与大家分享一些使用技巧和窍门,使这个优秀的开发工具更显威力。要充分利用一个... 阅读全文
posted @ 2007-04-25 16:48 能巴 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 许多初学 VC 的朋友也许都为那么一个问题困扰过: 为什么所有的 cpp 都必须 #include "stdafx.h" 也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含。可是,这到底是为什么呢?预编译头有什么用呢? 这得从头文件的编译原理讲起。其实头文件并不神秘,它的全部作用,就是把自己的所有内容直接“粘贴”到相应的 #include 语句处。如果不相信的话,不妨做... 阅读全文
posted @ 2007-04-25 14:36 能巴 阅读(1151) 评论(0) 推荐(0) 编辑
摘要: 我们打开自己的C++程序代码,对某个类的实现做了细小的改动。改动的不是接口,而是类的实现,只是细节部分。然后准备重新生成程序,此情况下编译和链接应该只会花几秒种。因为只是改动了一个类。于是Rebuild或make(或其它类似命令),然而发现所有文件都在被重新编译、重新链接。 问题的原因在于,将接口从实现中分离这方面,C++做得不是很出色。尤其是,C++的类定义中不仅包含接口规范,还有不少实现细... 阅读全文
posted @ 2007-04-25 14:28 能巴 阅读(944) 评论(0) 推荐(0) 编辑
摘要: Basically, inheritance and composition both make one object contain another object.Then when do we need to use inheritance not composition?1. Need use polymorphism mechanism by upcasting. For c++, it'... 阅读全文
posted @ 2007-04-25 14:21 能巴 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 当一个c或cpp文件在编译时,预处理器首先递归包含头文件,形成一个含有所有必要信息的单个源文件,这个源文件就是一个编译单元。这个编译单元会被编译成为一个与cpp文件名同名的目标文件(.o或是.obj)。连接程序把不同编译单元中产生的符号联系起来,构成一个可执行程序。经过预处理之后的文件(这个是内存中的临时文件)#include在预处理时被展开,宏也一样 一个经过展开后的.cpp文件就是一个编译单元... 阅读全文
posted @ 2007-04-25 11:47 能巴 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 详解link有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后,或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visual Studi... 阅读全文
posted @ 2007-04-25 11:19 能巴 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 预处理 预处理语句是一些行首以#开始的特殊语句,例如:#include,#define等就是预处理语句。在编译程序的编译过程中,进行其它编译处理(词法分析、语法分析、代码生成、优化和连接等)之前,先进行这些语句的分析处理。预处理语句使用的目的在于帮助程序员编写出易读、易改、易移植并便于调试的程序。预处理语句主要有三种:宏定义和宏替换、文件包含、条件编译。 预处理语句的作用范围... 阅读全文
posted @ 2007-04-25 09:44 能巴 阅读(558) 评论(0) 推荐(0) 编辑