C++库的不同版本 使用VisualStudio 2008在Vista编译一个简单的C++项目后,所有的运行在原始Vista机器和其他Vista计算机上都很好。但是,将其移到XP框会导致一条错误消息:应用程序无法启动,因为应用程序配置不正确

C++库的不同版本 使用VisualStudio 2008在Vista编译一个简单的C++项目后,所有的运行在原始Vista机器和其他Vista计算机上都很好。但是,将其移到XP框会导致一条错误消息:应用程序无法启动,因为应用程序配置不正确,c++,windows,windows-vista,windows-xp,C++,Windows,Windows Vista,Windows Xp,我必须做什么才能使我编译的EXE在XP和Vista上工作?几个月前我也遇到过同样的问题,只是在项目上修改了一些设置就解决了,但我不记得我更改了哪些设置。您需要在尝试运行应用程序的机器上安装运行时可再发行文件 2008年的可再发行债券为 2005年的可再发行债券为 如果您需要两者,可以将它们并排安装。您需要在目标计算机上安装Visual Studio 2008运行时: 或者,您也可以静态链接运行时,在“项目属性”窗口中转到: c++->代码生成->运行时 库并选择多线程 /MT 您可能需要将VC运

我必须做什么才能使我编译的EXE在XP和Vista上工作?几个月前我也遇到过同样的问题,只是在项目上修改了一些设置就解决了,但我不记得我更改了哪些设置。

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

2008年的可再发行债券为

2005年的可再发行债券为


如果您需要两者,可以将它们并排安装。

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

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

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


您可能需要将VC运行时与应用程序一起分发。有多种方法可以做到这一点。从微软Visual C++团队中,如果您使用VisualStudio 2005或2008,最好解释不同的方法来分发这些依赖项。 如本文所述,尽管您可以下载可再发行的安装程序包并在客户机上简单地启动它,但这几乎总是不是最佳选择。通常有更好的方法来包含所需的DLL,例如,如果您通过Windows安装程序分发,则包括合并模块;如果您只想分发压缩文件夹,则包括应用程序本地副本


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

静态链接到运行时是最简单的方法

c++->代码生成->运行库并选择多线程/MT

然而,这确实会使您的可执行文件大几百KB。如果要安装大量的小程序,这可能是个问题,因为每个程序都有自己的运行时副本。答案是创建一个安装程序

新建项目->设置和部署->设置项目


将使用DLL版本的运行时定义的应用程序项目的输出加载到安装程序项目中并生成它。我们会注意到对运行时DLL的依赖性,它包含在安装程序包中,并整洁、不引人注目地安装在目标计算机上的正确位置。

Visual studio 2005实际上有两个

那个


是的,但我不想让用户这么做。没有办法针对旧库进行编译吗?