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 上不起作用
Java URL("file://") 在 Windows XP 上不起作用