Rover12421's Blog

The End.

#if _MSC_VER > 1000

#if _MSC_VER > 1000
这是微软的预编译控制。 在_MSC_VER较小时,它对一些东西的支持与新版不同。 _MSC_VER分解如下: MS:Microsoft(微软)的简写 C:MSC就是Microsoft出的C编译器。 VER:Version(版本)的简写。

全部加在一起就是:Microsoft的C编译器的版本

if _MSC_VER > 1000//如果MFC的版本大于4.2(可能是4.2,具体4.2与1000之间如何转换不清楚)

pragma once//这个头文件只编译一次,为了类库的兼容性考虑,像以前的C的类库

endif // _MSC_VER > 1000//结束条件编译


_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接)
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100
其中MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。版本名称上的的对应关系参见扩展阅读中的参考文献1的链接.
在程序中加入_MSC_VER宏可以根据编译器版本让编译器选择性地编译一段程序。例如一个版本编译器产生的lib文件可能不能被另一个版本的编译器调用,那么在开发应用程序的时候,在该程序的lib调用库中放入多个版本编译器产生的lib文件。在程序中加入_MSC_VER宏,编译器就能够在调用的时根据其版本自动选择可以链接的lib库版本,如下所示。
#if _MSC_VER >= 1400 // for vc8, or vc9
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc8-d.lib" )
#else if
#pragma comment( lib, "SomeLib-vc8-r.lib" )
#endif
#elif _MSC_VER >= 1310 // for vc71
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc71-d.lib" )
#else if
#pragma comment( lib, "SomeLib-vc71-r.lib" )
#endif
#elif _MSC_VER >=1200 // for vc6
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc6-d.lib" )
#else if
#pragma comment( lib, "SomeLib-vc6-r.lib" )
#endif
#endif
本编辑词条参考自扩展阅读中的链接。关于_MSC_VER更详细的说明请点击阅读扩展阅读中的参考文献3,4的链接。

WIKI:
 

Microsoft Visual C++,(简称Visual C++MSVCVC++VC)微软公司的[C++][1]开发工具,具有[集成开发环境][2],可提供编辑C语言,[C++][1]以及[C++/CLI][3]等编程语言。VC++集成了便利的除错工具,特别是集成了微软[视窗][4]程序设计([Windows][4] API)、Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2008。

风格

Visual C++以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加链接著称。这些特征明显缩短程序编辑、编译及链接的时间花费,在大型软件计划上尤其显著。

历史

Visual C++最初叫做Microsoft C/C++。

  • Visual C++ 1.0,集成了[MFC][6] 2.0,是Visual C++第一代版本,1992年推出,可同时支持16位处理器与32位处理器版,可算是Microsoft C/C++ 7.0的更新版本。
  • Visual C++ 1.5,集成了[MFC][6] 2.5,增加了“目标文件链接嵌入 (OLE)2.0和支持MFC的开放式数据库链接([ODBC][7])。这个版本只有16位的,也是第一个以[CD-ROM][8]为软件载体的版本。这个版本也没有所谓“标准版”。它是最后一个支持16位软件编程的软件,也是第一个支持基于[x86][9]机器的32位编程软件。
  • Visual C++ 2.0,集成了MFC 3.0,第一个只发行32位的版本。这个版本提前发行了,几乎成了一个“丢失的版本”。这是因为那个时候[Windows 95][10](开发代码为"Chicago")还没有发行,而[Windows NT][11]又只占有很小的市场份额。该版本用户可以通过微软公司的订阅服务(Microsoft Subscription Service)升级至2.1和2.2版本。微软公司在这个版本中集成并升级了Visual C++ 1.5,作为2.0版本(Visual C++ 1.5升级后版本号:1.51)以及2.1版本(Visual C++ 1.5升级后版本号:1.52)的一部分。Visual C++ 2.x附带了16位和32位版本的CDK,同时支持[Win32s][12]的开发。Visual C++ 2.2及其后续版本不再升级Visual C++ 1.5(尽管它一直被集成至Visual C++ 4.x)。尽管出生的比Windows 95早,这个版本的发行日期还是非常接近[Windows 95][10],可是当[Windows 95][10]发行时,Visual C++ 4.0也已经发行了。因此很多程序开发者直接从1.x过渡到4.0,把2.x跳过去了。
  • Visual C++ 4.0,集成了[MFC][6] 4.0,这个版本是专门为[Windows 95][10]以及[Windows NT][11]设计的。用户可以通过微软公司的订阅服务(Microsoft Subscription Service)升级至4.1和4.2版本(此版本不再支持[Win32s][12]开发)。
  • Visual C++ 5.0,集成了MFC 4.21,是4.2版以来比较大的一次升级。
  • Visual C++ 6.0,集成了MFC 6.0,于1998发行。发行至今一直被广泛地用于大大小小的项目开发。但是,这个版本在Windows XP下运行会出现问题,尤其是在调试模式的情况下(例如:静态变量的值并不会显示)。这个调试问题可以通过打一个叫“Visual C++ 6.0 Processor Pack”的补丁来解决。奇怪的是,这个网页强调用户也必须运行Windows 98、Windows NT 4.0、或Windows 2000。
  • Visual C++ .NET 2002(也即Visual C++ 7.0),于2002年发行,集成了MFC 7.0,支持链接时代码生成和调试运行时检查。这个版本还集成了Managed Extension for C++,以及一个全新的用户界面(与[Visual Basic][13]和[Visual C#][14]共用)。这也是为什么Visual C++ 6.0仍然被广泛使用的一个主要原因。
  • Visual C++ .NET 2003(也即Visual C++ 7.1),集成了MFC 7.1,于2003年发行,是对Visual C++ .NET 2002的一次重大升级。
  • eMbedded Visual C++,用于Windows CE操作系统。Visual C++作为一个独立的开发环境被[Microsoft Visual Studio 2005][15]所替代。
  • Visual C++ 2005(也即Visual C++ 8.0),集成了MFC 8.0,于[2005年][16]11月发布。这个版本引进了对[C++/CLI][3]语言和[OpenMP][17]的支持。
  • Visual C++ 2008(也即Visual C++ 9.0),于[2007年][18]11月发布。这个版本支持.NET 3.5,是目前最新的版本。
  • Visual C++ 2010(也即Visual C++ 10.0),将于2010年发布。目前仍在开发中,Visual C++开发团队考虑使用SQL Server Compact格式的数据库来存储源码的相关信息.本版也加入了现代化的C++并行计算库-Parallel Patterns Library,部分支持C++0x。本版建构于.NET 4.0之上,但仍支持机器码的编译。

当前稳定版本

Visual C++被集成在Visual Studio之中,但仍可单独安装使用。

目前有四种最新版本:

  • Visual C++ 2008 Express
  • Visual C++ 2008 Standard标准版
  • Visual C++ 2008 Professional专业版
  • Visual C++ 2008 Team System团队系统版

其中Microsoft Visual C++ 2008 Express可从MSDN的网站免费下载使用,并且不限制商业使用。

参见

  1. ^ Visual C++ Team Blog.IntelliSense, part 2: The Future.于2008年3月12日查阅.
  • Microsoft Visual C#

外部链接

Comments