[好,所以我正在Windows 7 x64中使用Visual Studio 2012进行编程和编译。我的应用程序在那里正常运行,但是当我尝试从Windows XP SP3虚拟机执行它时,我立即得到“ xxxx.exe不是有效的win32应用程序”。
正在使用静态链接(即,使用/MT
编译应用程序。我已经在targetver.exe中将_WIN32_WINNT设置为0x0501;将配置管理器设置为Win32,并且链接器高级选项中的目标计算机设置为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确实支持Windows XP –该支持于2012年晚些时候在Visual Studio 2012 Update 1中出现。CTP of Windows XP targeting with VC++ 2012可以安装,但是您必须静态链接CRT才能进行部署。有关更多信息,请参见this blog article。
Visual Studio 2012 Update 1添加了对在Windows XP上运行使用VC ++ 2012构建的应用程序的官方支持,并具有动态链接CRT的功能。