http://blog.csdn.net/d_change/article/details/51824568
http://blog.csdn.net/asanscape/article/details/38752655
https://blogs.msdn.microsoft.com/vcblog/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012/ <-- 备忘

图片取自CSDN,感谢作者d_change

正文取自CSDN,感谢作者asanscape
http://blog.csdn.net/asanscape/article/details/38752655
《让用VS2012/VS2013编写的程序在XP中顺利运行》
在vs2012/2013版本里面,其自带的c编译器cl.exe,若直接使用cl a.c编译,那么生成出来的exe放在vista及以上版本直接运行没有问题,但是在xp上则会出来“不是有效的win32应用程序”的出错提示。这是因为vs2012/2013自带的c编译器默认情况下生成的exe会默认只支持vista及以上版本的windows系统。

解决方法:

对于使用命令行cl.exe直接编译的方式:
先用cl a.c编译一遍,此时会生成a.exe和a.obj两个文件,此时,再执行 link b.obj /subsystem:console,5.01,它会链接一个新的a.exe出来,此时的exe就可以在xp上运行了。相比vs2010以及以前版本的编译器编译,会多第二步的link过程,后面的参数也很容易理解,subsystem,5.01,此处的5.01是指的windows内核版本号,5.01表示windows 2000 with sp1,即此exe可以在win2000 sp1及以上的windows中执行。

当然,这个地方的/subsystem后面有很多参数,上面给的console,5.01是指命令行程序,如果是有GUI即有窗口的程序,改成windows,5.01即可。

Specify the correct subsystem and subsystem version for the linker based on the type of application you are building. Applications targeting the x86 version of Windows XP must specify subsystem version 5.01, and applications targeting x64 must specify version 5.02.

For x86 console applications:

set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%

For x64 console applications:

set LINK=/SUBSYSTEM:CONSOLE,5.02 %LINK%

对于在vs2013里面使用新建项目的方式:
右击相应的项目,选择“属性”,在项目属性页中的“配置属性”下面的“常规”里面,把“平台工具集”,由“Visual Studio 2013 (v120)”改成“Visual Studio 2013 - Windows XP (v120_xp)”,确定之后,重新生成项目即可。当然这里按这样修改的话,就只能在winxp及以上的版本系统里面运行了。

转:解决vs2015生成软件在XP中运行时提示“不是有效的WIN32应用程序”相关推荐

  1. xp系统运行php,window_Xp系统安装或运行软件时提示“EXE不是有效Win32应用程序”的故障原因及解决方法,部分Xp系统用户在双击安装某 - phpStudy...

    Xp系统安装或运行软件时提示"EXE不是有效Win32应用程序"的故障原因及解决方法 部分Xp系统用户在双击安装某个软件时,会遇到"EXE不是有效Win32应用程序&qu ...

  2. 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序

    问题描述: 用VC2013编译了一个程序,在Windows 8.Windows 7(64位.32位)下都能正常运行.但在Win XP,Win2003下运行时,却报错不能运行,具体错误信息为" ...

  3. cmd无法运行python_通过Java-%1在cmd中运行python文件不是有效的Win32应用程序 - java...

    我正在尝试使用Java执行python代码.我的代码: public class PyTest { public static void main(String[] args) { Runtime.g ...

  4. Gradle项目在IDEA中运行时提示:Unnecessarily replacing a task that does not exist is not supported. Use create

    场景 在IDEA中新建Gradle项目后,使用Java语言. 新建类后添加main方法,然后运行main方法释提示: could not create task ':HelloWorldServer. ...

  5. vs2015+Qt5.7编译生成的程序在xp中运行提示不是有效的win32程序解决方案

    //用Qt mingw版本的编译的程序是可以运行的.但由于Qt5.6以上好像就没有QtWebkit了,而被替代的是QtWebEngineView.而带有QtWebEngineView的版本的都是msv ...

  6. [原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C0000006 异常问题

    [原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C0000006 异常问题 参考文章: (1)[原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C ...

  7. 如何在语音字幕生成软件 “字幕助手“ 中配置使用有道ASR引擎

    随着科技进步.信息技术和交通运输方面取得的发展,现在世界上不同种族.不同国家.不同语言的人之间交流越来越方便了.在视频这个领域,外文的需求也越来越强烈了. 字幕助手是一款根据音频自动识别生成字幕的辅助 ...

  8. XP添加权限时提示:无法显示用户选项对话框的解决方法!

    症状: 打开共享权限添加用户无法打开 出现" 安全:无法显示用户选项对话(null)" 如图: 解决方法: 第一种方法是: 将别人WINDOWS SYSTEM32 文件夹下的ric ...

  9. Win7系统安装软件提示不是有效的win32应用程序的解决方法

    用户在Win7系统中安装软件时,时常会出现一些64bit和86bit的提示,这个和系统32位与64位有关,笔者便不多说.还有一些在Win7系统中比较少见的提示:"不是有效的Win32程序&q ...

最新文章

  1. 8、Python与设计模式--门面模式
  2. python协程详解_对Python协程之异步同步的区别详解
  3. C#读取excel数据到datatable中
  4. python Appium安装及环境配置 mitmproxy安装配置
  5. 产生指定长度的随机字符串
  6. 通过APNIC获取各运营商IP网段
  7. DATETIME与TIMESTAMP
  8. Nsight 调试 Caffe
  9. ACM PKU 2559 Largest Rectangle in a Histogram http://acm.pku.edu.cn/JudgeOnline/problem?id=2559
  10. python模块cv2人脸识别_Python基于Opencv来快速实现人脸识别过程详解(完整版)
  11. 7添加静态路由 hat red_win7系统怎么使用dos命令添加静态路由
  12. Cisdem PDFMaster for Mac(PDF批量转换工具)
  13. Github/github 初始化教程
  14. python花瓣网_花瓣网花瓣爬虫
  15. windows10环境下curl 安装与配置
  16. 腾讯WiFi管家 v3.7.3
  17. 酷派5890详细获取ROOT、以及刷机教程
  18. 计算机学霸电视剧,“学霸爱上学渣”的4部电视剧,部部甜到爆炸,全看过的真有眼光...
  19. 乐吾乐2D可视化为智慧水务可视化赋能(二)
  20. 微信公众号学习与开发过程

热门文章

  1. 路径规划之曲线插值拟合算法分析
  2. throwable四参构造_深入分析Java反射(四)-动态代理
  3. python趋势回归_Python 回归分析 - 树懒学堂
  4. 791. 高精度加法
  5. Ubuntu 14.04/16.04 (使用apt-get进行安装) 安装Docker
  6. 中职计算机专业建设构想,《关于技能大赛引导中职计算机专业建设的思考原稿》...
  7. 上海电机学院c语言,上海电机学院第1章_C语言概述.ppt
  8. 生成的头_谷歌新款怪物制造机,用GAN一键生成定制版哥斯拉
  9. Opengl 好的文章和博客地址
  10. 【数据结构笔记30】拓扑排序、AOV网络、AOE网络、关键工序