【发布时间】:2012-10-19 07:17:24
【问题描述】:
好的,所以我在 Windows 7 x64 中使用 Visual Studio 2012 进行编程和编译。我的应用程序在那里运行良好,但是当我尝试从 Windows XP SP3 虚拟机执行它时,我立即收到“xxxx.exe 不是有效的 win32 应用程序”。
正在使用静态链接编译应用程序,即使用/MT。我在 targetver.exe 中将 _WIN32_WINNT 设置为 0x0501;配置管理器设置为 Win32,Linker 高级选项 中的目标机器设置为 MACHINEX86。
我的 targetver.h 看起来像这样:
#include <winsdkver.h>
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501
#include <SDKDDKVer.h>
我也尝试使用 /MD 进行编译并安装 .NET Framework,但这也无济于事。
我一无所知,我真的需要一些帮助,因为我需要让它在 Windows XP 上工作。
【问题讨论】:
-
VC++ 2012 RTM不支持 WinXP。你安装CTP of WinXP targeting with VC++ 2012了吗?请参阅this blog article 了解更多信息。
-
哦,这解释了一切。本可以节省我几个小时试图让它工作的时间。我会看看这些链接,谢谢。
-
请注意
Visual Studio不是编程语言;这是一个开发环境。它支持多种语言(C#、VB.NET、C++ 等)。您使用的 语言 是 C++,这就是您的问题应该解决的问题。大多数时候,语言和 IDE 之间存在重要区别。 :-) -
是的,我知道肯。如果这个问题有任何误导性,我很抱歉。我无意说 Visual Studio 是一种编程语言,我只是想指出它是我的开发环境,正如你所说,因为它似乎是我的问题的原因。还是谢谢。
-
刚刚尝试了CTP for WinXP Targetting(希望我使用该链接进行了正确的格式化)并且它完美地工作。我想我不需要切换回 Visual Studio 2010。非常感谢,如果可以的话,我会支持你;可悲的是,我不能。然而。
标签: c++ c visual-c++ windows-xp visual-studio-2012