C++ 二进制文件在 Windows XP 上不起作用

Posted

技术标签:

【中文标题】C++ 二进制文件在 Windows XP 上不起作用【英文标题】:C++ binary doesn't work on windows XP 【发布时间】:2012-04-23 03:42:39 【问题描述】:

我在 Windows 7 上使用 VS 11 Beta 编译了一个非常基本的 C++ 程序。

所有项目设置都是默认设置,运行时库除外。我将多线程 DLL (/MD) 更改为多线程 (/MT)。据我所知,这静态链接运行时库。

尝试在另一台安装了 VS 11 Beta 的 Windows 7 机器上运行此 exe 可以正常工作。

尝试在没有安装 VS 的 windows x XP 机器上运行它会导致弹出错误提示。

**.exe 不是有效的 Win32 应用程序”

是否需要更改一些设置才能使在 Win7 上使用 VS 11 Beta 编译的二进制文件在 XP 上工作?

【问题讨论】:

你编译的是 32 位还是 64 位的二进制文件? @nightcracker 好点。我似乎在项目设置中找不到 x64 设置。是不是搬到别的地方了? Visual Studio 11 不支持 Windows XP,但您也许可以解决这个问题:***.com/questions/7702463/… @DCoder:哇,这让 VS11 变得毫无用处! @Black - 一直都是这样。在项目设置中,选择配置管理器、活动平台,然后选择<New...> 以将 x64 添加为新目标。 (假设安装包时选择了 x64 编译器)。 【参考方案1】:

VS 11 不再支持 Windows XP。这是 Microsoft 的设计。

http://connect.microsoft.com/VisualStudio/feedback/details/690617

此行为是在 MFC 和 CRT for Visual Studio 11 Beta 中设计的。支持的最低操作系统是 Windows Server 2008 SP2 和 Windows Vista。 Beta 版(设计时或运行时)不支持 Windows XP 操作系统。

进一步阅读讨论,发布版本可能支持 Windows XP。不过我不会指望它。

编辑:微软已经让步了:Targeting Windows XP with C++ in Visual Studio 2012

【讨论】:

【参考方案2】:

可能您为 64 位 Windows 编译。但是,Windows XP 仅支持 32 位代码。

【讨论】:

XP 也有 64 位版本(虽然 32 位版本很多更常见)。 我在项目设置中找不到 x86 x64 的设置。知道它可能在哪里吗?

以上是关于C++ 二进制文件在 Windows XP 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

knitr mp4 电影嵌入在 Windows XP 上不起作用

qt c++ 在 win xp sp1 上不起作用

注入 dll 在 Windows XP 上不起作用

Java URL("file://") 在 Windows XP 上不起作用

MS C++(CL)编译的可执行文件在 Windows 2000 上不起作用 [重复]

Vb.net WebClient.DownloadFileAsync 在 xp 和 8.1 上不起作用