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 文件夹)中
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)