Visual C++ 6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境,Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。
好在已经有很多商业公司、开源组织、基金会甚至是个人,遵照C++标准在不同的平台上进行了实现。这里的遵照并不是***地遵照C++标准,主要原因有以下几点:
(1)历史原因。某些编译器在实现的时候,C++正式标准还没有出来,或者是按照较老的标准实现的(C++标准也是在更新的)。
(2)平台原因。某些平台上实现标准中的某些特性比较困难,或者根本不需要这些特性。
(3)出于商业目的。某些商业公司实现的时候可能会添加一些其认为可行的或者更加好的特性。
(4)其他技术原因。
无论如何,现在可用的C++编译器实现已经很丰富了,在Windows平台上的实现就有若干种,比较常用的有Visual C++ 6.0附带的C++编译器实现,和Borland C++ Builder附带的C++编译器实现。就对标准的执行程度来看,后者要好一些。
提示:Visual C++和Borland C++ Builder是Windows操作系统上常见的C++开发工具。前者是微软公司出品的,应用广泛。
本书的主要内容就是讲述如何使用Visual C++ 6.0进行常见的Windows程序设计。Visual C++ 6.0除了包含了一个C++编译器之外,还包含了其他的一些可视化开发工具、辅助工具,以及一些C++库等,这些都将在本书的相关章节进行介绍。
Visual C++ 6.0的开发过程
Visual C++ 6.0编译器负责将C++源代码编译成汇编文件,转换为中间文件(obj文件),然后使用连接器将相关的中间文件连接在一起,生成可执行的二进制文件。其过程如下:
(1)源程序经过预处理后交给编译器。
(2)如果代码无误,编译器将代码生成汇编程序,再生成若干个目标程序(obj文件)。
(3)链接器负责将目标程序进行连接,生成可执行的程序。
Visual C++它大概可以分成三个主要的部分:
1. Developer Studio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C++”,所以很多人理所当然的认为,那就是Visual C++了。
其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio当成Visual C++, 它充其量只是Visual C++的一个壳子而已。这一点请切记!
2. MFC。从理论上来讲,MFC也不是专用于Visual C++,Borland C++,C++Builder和Symantec C++同样可以处理MFC。同时,用Visual C++编写代码也并不意味着一定要用MFC,只要愿意,用Visual C++来编写SDK程序,或者使用STL,ATL,一样没有限制。
不过,Visual C++本来就是为MFC打造的,Visual C++中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C++而不用MFC就等于抛弃了Visual C++中很大的一部分功能。但是,Visual C++也不等于MFC。
3. Platform SDK。这才是Visual C++和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C++编译器为核心(不是Visual C++,看清楚了)。
配合MASM,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。
【编辑推荐】