我是 C++ 新手。我使用 VS 2008 Professional 制作了一个 c++ 程序。我从为我创建了一个窗口的 Win32 模板开始。我在 Vista 32 上编译它。我将编译后的 exe 带到我的旧 XP sp2 计算机上,它告诉我应用程序配置不正确。我做错了什么吗?如何让它独立于平台?
谢谢
我是 C++ 新手。我使用 VS 2008 Professional 制作了一个 c++ 程序。我从为我创建了一个窗口的 Win32 模板开始。我在 Vista 32 上编译它。我将编译后的 exe 带到我的旧 XP sp2 计算机上,它告诉我应用程序配置不正确。我做错了什么吗?如何让它独立于平台?
谢谢
尝试安装Microsoft Visual C++ 2008 SP1 Redistributable Package并确保使用应用程序的发布版本。
确保将 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 。
您的目标系统缺少该可执行文件所需的运行时文件。
您可以在以下位置找到它:Microsoft Visual C++ 2008 Redistributable Package (x86)或Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
您可以使用Dependency Walker来查找目标 WinXP 系统上缺少哪些组件。然后您应该安装适当的可再发行组件。
在项目属性中,设置"C/C++ -> Code Generation -> Runtime Library"
为"Multi-threaded (Debug)"
。重建后,应用程序将不再依赖msvcr90.dll
. 但是,应用程序二进制文件会稍大一些。