2009-09-17 23 views
0

我是新来的C++。我用VS 2008 Professional制作了一个C++程序。我开始使用为我创建窗口的Win32模板。我将其编译到Vista 32上。我将编译好的exe文件带到我的旧版XP SP2计算机上,它告诉我应用程序配置不正确。有什么我做错了吗?我如何让平台独立?应用程序配置不正确错误C++

感谢

回答

2

尝试安装Microsoft Visual C++ 2008 SP1 Redistributable Package,并确保您使用的应用程序的发布版本。

+0

那么我怎么能做一个没有依赖的应用程序,这有点令人失望,因为我从.Net过渡到希望不必担心这个东西;我可以使用VC 6还是其他? – jmasterx 2009-09-17 17:54:01

+3

您可以通过静态链接到运行时支持库来避免依赖关系。 – 2009-09-17 17:58:23

1

确保WINVER设置为包括WinXP的一个版本 - 它看起来像Windows的缺省目标版本为VS 2008是Vista的(为0x0600)。

设置以下预处理器定义:

#define WINVER 0x0501 

优选使用项目属性 “C/C++ /预处理器/预处理器定义” 或中的cl.exe命令行上-D选项。也有可能有一个targetver.h文件具有此设置(取决于您最初创建项目的方式)。

有关更多详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspx

+0

这是一个好主意,但可能不是基于正在发生的错误的问题。 – crashmstr 2009-09-17 18:19:19

0

您可以使用Dependency Walker来查找目标WinXP系统上缺少哪些组件。然后你应该安装适当的可再分发包。

0

在项目属性中,将"C/C++ -> Code Generation -> Runtime Library"设置为"Multi-threaded (Debug)"。重建之后,应用程序将不再依赖于msvcr90.dll。然而,应用程序二进制文件会稍大。

+0

当然,对于发布版本,您应该使用“多线程”(而不是调试)。如果你的应用程序本身由多个DLL组成,这也是一个坏主意。 – MSalters 2009-09-18 10:44:14

相关问题