不同版本的C ++库

在vista上使用Visual Studio 2008编译一个简单的C ++项目后,在原有的vista机器和其他Vista计算机上运行正常。 但是,将其移动到XP盒将导致错误消息:“应用程序无法启动,因为应用程序configuration不正确”。

我有什么要做,所以我编译的EXE在XP和Vista上工作? 几个月前,我也遇到了同样的问题,只是在项目上修改了一些设置,但我不记得我改变了哪些。

Solutions Collecting From Web of "不同版本的C ++库"

您需要在目标计算机上安装Visual Studios 2008运行时:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

或者,也可以静态链接运行时间,在项目属性窗口中转到:

c ++ – >代码生成 – >运行时库并选择“多线程/ MT”

您需要将运行时可再发行文件安装到您尝试运行该应用程序的机器上。

2008年的可重新分配在这里 。

2005年的可重新分配在这里 。

他们可以并排安装,以防需要这两者。

您可能需要将VC运行时与您的应用程序一起分发。 有很多方法可以做到这一点。 如果您使用的是Visual Studio 2005或2008,则Microsoft Visual C ++团队的这篇文章最好地解释了分发这些依赖项的不同方法。

正如文章所述,虽然您可以下载Redistributable安装程序包,并简单地在客户机上启动它,但这几乎总是不是最佳选择。 通常有更好的方法来包含所需的DLL,比如包含合并模块,如果你只是想分发一个压缩文件夹的话,如果你是通过Windows安装程序或App-Local拷贝分发的话。

另一个选择是静态链接到运行时库,而不是将它们分发给您的应用程序。 此选项仅适用于不加载其他DLL的独立EXE。 您也不能使用其他应用程序加载的DLL来执行此操作。

静态链接到运行时,最为简单。

c ++ – >代码生成 – >运行时库并选择“多线程/ MT”

但是,这确实使您的可执行文件大了几百KB。 如果你正在安装大量的小程序,这可能会成为一个问题,因为每个程序都会被运行时拷贝所困扰。 答案是创建一个安装程序。

新建项目 – >“设置和部署” – >“设置项目”

将应用程序项目的输出(使用DLL版本的运行时定义)加载到安装程序项目中并构建它。 将会注意到运行时DLL的依赖关系,包含在安装程序包中,并且干净利落地安装在目标机器的正确位置。

Visual Studio 2005其实有两个

原始版本的一个

和SP1的