VC++6.0、VC2008、VC2010之间的区别

VC++6.0、VC2008、VC2010之间的区别,第1张

VC++6.0、VC2008、VC2010区别为:发布时间不同、兼容系统不同、新增功能不同。

一、发布时间不同

1、VC++6.0:VC++6.0于1998发行,又称VC98。

2、VC2008:VC2008于2007年11月发布,又称Visual C++ 9.0。

3、VC2010:VC2010于2009年5月发布,又称Visual C++ 10.0。

二、兼容系统不同

1、VC++6.0:VC++6.0只能运行在Windows 98、Windows NT4.0或Windows 2000上。

2、VC2008:VC2008的为。从这个版本开始,微软放弃了对编写Win9x架构系统上的软件的支持。

3、VC2010:VC2010只能安装于win7或者更高的windows *** 作系统。

三、新增功能不同

1、VC++6.0:VC++6.0开始集成了MFC6.0功能。

2、VC2008:VC2008开始支持.NET 3.5平台。

3、VC2010:VC2010添加了对C++11标准引入的几个新特性的支持。

以前一直用vc6,不是喜欢他什么,最重要的一点是用它发布程序方便,搬到别处的电脑几乎不会出现什么问题。而vc9发布程序,很容易出现程序配置错误等问题而无法运行,导致的原因是与环境dll有关,找了很久终于找到很详细的解答,以下是地址

http://blog.csdn.net/xiaojianpitt/archive/2009/06/15/4269641.aspx

vc2008程序发布指南2008-05-03 17:46vc2008开发的程序的发布方式可以有5种方式:

1. 采用静态链接到crt和MFC. 只要你拥有组成程序的所有源代码,你就可以采用这种方式,

这种方式除了程序变大一点,好处多多:

1) 不必重新发布vc2008基础库vcredist_x86.exe(安装到WinSxS).

2) 不必产生,嵌入manifest.

3) 也不把vc2008基础库放在程序所在目录.

2. exe(嵌入manifest) + vcredist_x86.exe

确保程序正确产生并嵌入manifest文件,然后把程序和vcredist_x86.exe一起发布.用户先安装

vcredist_x86.exe(安装到WinSxS),然后程序就能正常运行了.

3. exe(嵌入manifest) + 用到的基础库文件放到程序目录(包括库文件本身的manifest文件)

确保程序正确产生并嵌入manifest文件,然后把程序用到的vc2008基础库相关文件复制到程序

所在目录,这种方式适用于用户没有安装过vcredist_x86.exe,一旦用户安装过vcredist_x86.exe,

若WinSxS中的相关文件遭到破坏,那么即使在程序目录放上所有用到的vc2008基础库,程序也跑

不起来若WinSxS中的相关文件正常,那么程序目录下的相关文件就是多余的了,删掉它们程序也能

正常运行.

4. exe(自行编写manifest) + vcredist_x86.exe

5. exe(自行编写manifest) + 用到的基础库文件放到程序目录(包括库文件本身的manifest文件)

个人偏向第五的方法

在vc2008中,工程属性可以设定manifest是不是嵌入到文件,经过测试,在没有安装vcredist的xp系统上,将基础库文件放到程序目录就 行了,当然要包括库文件的manifest。而不嵌入manifest的好处就是第三点说到的。因为程序会优先检测winsxs的,如果里面存在却是错误 的,导致程序跑不起来,那么如果不将manifest内嵌,就一定能保障程序能找到正确的配置文件和相关的库文件。

举个例子:

一个程序只用CreateWindow来创建一个窗口和一个按钮

在项目属性->清单工具->输入输出 中 将清单嵌入设为否,那样就会帮你生成manifest文件而不会将它嵌入

然后,在链接器->清单文件->附加清单依赖项 中加入

type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df' language='*'

这样,通用控件就能使用系统的主题样式。

编译程序后,除了程序文件xxx.exe和xxx.exe.manifest外,到VC\redist中找到相应的dll和manifest

这个程序就需要msvcp90d.dll msvcr90d.dll msvcm90d.dll 和 Microsoft.VC90.DebugCRT.manifest

因为这是调试版本,所以基础库都是msvc...d.dll

Release版本就找对应的版本和manifest就可以了。

Microsoft Visual C++ 2008 Redistributable Package (x86) 会为 Visual C++ 库安装必要的运行时组件,使用户能够在未安装 Visual C++ 2008 SP1 的计算机上运行使用 Visual C++ SP1 开发的应用程序。

Microsoft Visual C++ 2008 Redistributable Package (x86) 会为 Visual C++ 库安装必要的运行时组件,使用户能够在未安装 Visual C++ 2008 SP1 的计算机上运行使用 Visual C++ SP1 开发的应用程序。

此软件包安装 C 运行时 (CRT)、标准 C++、ATL、MFC、OpenMP 和 MSDIA 库的运行时组件。对于支持并行部署模型的库(CRT、SCL、ATL、MFC、OpenMP),这些运行时组件被安装到支持并行程序集的 Windows *** 作系统的本机程序集缓存(也称为 WinSxS 文件夹)中


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7807555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存