0

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

谢谢

4

5 回答 5

2

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

于 2009-09-17T17:51:20.033 回答
1

确保将 WINVER 设置为包含 WinXP 的版本 - 看起来 VS 2008 的 Windows 的默认目标版本是 Vista (0x0600)。

设置以下预处理器定义:

#define WINVER 0x0501

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

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

于 2009-09-17T17:57:21.677 回答
0

您的目标系统缺少该可执行文件所需的运行时文件。

您可以在以下位置找到它:Microsoft Visual C++ 2008 Redistributable Package (x86)Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

于 2009-09-17T17:52:09.557 回答
0

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

于 2009-09-17T18:09:35.790 回答
0

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

于 2009-09-17T18:17:19.437 回答