use*_*717 40 c c++ windows visual-studio-2012
我在Visual Studio 2012 RC中有一个小的C/C++项目
此应用程序解析argv,然后调用另一个.exe文件 ShellExecute
我的应用程序在Windows7上运行完美,但在Windows XP x86 trhows上不是有效的Win32应用程序错误.
我用Mutli-thread(/ MT)和Win32 Platform编译了它
这是我的#includes
#include <string>
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <cstdio>
#include <vector>
#include <windowsx.h>
#include <shlobj.h>
#include <stdio.h>
#include <tchar.h>
#include <direct.h>
Run Code Online (Sandbox Code Playgroud)
谢谢
noe*_*cus 50
这是2013年2月,我现在可以通过设置以下目标来定位VS2012中的XP:
项目属性 - >常规 - >平台工具集:
Visual Studio 2012 - Windows XP(v110_xp)
您必须使用您的应用程序重新分发msvcp110.dll库等,可在此处找到: "<Program Files>\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT\"
2015年8月使用Visual Studio 2015更新
现在似乎有很多选择.我能够使用Visual Studio 2015 - Windows XP(v140_xp)设置在VS2015中编译应用程序.为了让它实际上在Win XP上运行,我必须部署(与应用程序一起复制)msvcr100.dll用于Release版本,msvcr110.dll和msvcr100d.dll用于Debug版本(注意数字100和110有区别,还有调试库msvcr100d .dll可能不是可再发行的)
Red*_*edX 45
VS 2012应用程序无法在Windows XP下运行.
请参阅此VC++博客,了解为何以及如何使其工作.
它似乎从2013年2月起得到支持/可能.请参阅下面的noelicus答案.
虽然seleted的答案是在不久前,然后noelicus给出了关于v110_xp平台工具集的正确更新,但还有一个问题可能产生这种行为.
mahesh在他的评论中已经发布了关于问题的说明,我想强调这一点,因为我花了几天时间挣扎然后自己找到它.
所以,如果你在"配置属性 - >链接器 - >系统 - >子系统"中有一个空白,你仍然会在XP和Win2003上得到"无效的Win32应用程序"错误,而在Win7上它没有这个烦人的错误.一旦我放下子系统:控制台,错误就消失了.
至少有两种解决方案: