好的,所以我在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。提前谢谢。
答案 0 :(得分:24)
重新发布评论,并注意此答案仅适用于VC ++ 2012 :
VC ++ 2012 RTM 不支持WinXP - 今年晚些时候将在VS2012 Update 1中提供支持。
在此期间,您可以安装CTP of WinXP targeting with VC++ 2012,但您必须静态链接CRT才能进行部署。有关详细信息,请参阅this blog article。
编辑:Visual Studio 2012 Update 1现已发布,并增加了在Windows XP上运行使用VC ++ 2012构建的应用程序的官方支持,以及动态链接CRT的功能。
答案 1 :(得分:7)
应该做两件事:
配置属性&gt;常规页面,将Platform Toolset更改为:Visual Studio 2012 - Windows XP(v110_xp);
链接器&gt;系统。将子系统更改为:控制台/ Windows。
答案 2 :(得分:0)
也许这个解决方案可能会迟到,或者它可能不是预期的解决方案,但是当您生成.exe时,32位的版本将位于Project文件夹bin \ x86 \ Release