如何让VS2013编写的程序在xp下运行
总体分c++程序和c#程序
1、c++程序
这个用C++编写的程序可以经过设置后在XP下运行,主要的“平台工具集”里修改就可以。
额外说明:(1)程序必须为Dotnet 4.0及以下版本。(XP只支持Dotnet4.0及以下版本,不支持Dotnet 4.5)
(2)用C#编写的程序,无需进行如下设置,只要在目标机的xp中安装相应的Dotnet版本即可。
用VS2013在win7下编写的C++程序在XP下运行的错误与解决。
1.在xp下运行报错为:“不是有效的win32应用程序。”
解决方法:
【配置属性】-【常规】-【平台工具集】,选择“VisualStudio 2013 (v120 XP)”。
注意:C#编写的程序没有该选项,如何解决C#的程序在XP下的运行,待解决。
2.将原动态编译改为静态编译,否则报错为:未找到MSVCR120D.DLL“
解决方法:
【配置属性】-【C/C++】-【代码生成】-【基本运行时库】,
由默认的“多线程调试DLL(/MDd)”,改成“多线程 (/MT)”,确定之后,重新编译。
注意:网上说这一步需要根据你的当前工程属性Debug还是Release来选择“Multi-threadedDebug (/MTd)”或者“Multi-threaded(/MT)”,但我不论在debug还是release模式下,均选择“多线程/MT”,均能正常运行。
关于静态链接库的文章:
http://www.cnblogs.com/eddyshn/archive/2009/11/23/1608823.html
3.【配置属性】-【常规】-【使用MFC】,选择“Use MFC in a Static Library”(非MFC程序可无视)。
注意:我改了这一步后,编译报错,原因未知。
只要做前面1,2步,即可在XP下运行。
4.将你的工程中依赖的所有外部库,都按照步骤1~3重新编译。
注意第四步很重要。如果你只完成了前三步,编译工程发现一大堆link错误,那就是你第四步没有做完整的原因了。
一个项目使用的库中如果存在不同版本的基本运行时库,必然导致冲突。
如果你用到的第三方库没有源码,而且又不是用MTD或MT编译的,很可能你就悲剧了。
5、网上说是还需在以下方面修改,未测试:
原文说:
项目菜单->项目属性->链接器->系统->子系统->控制台或窗口windows(根据你的项目类型选择),第二项版本号设成5.01。
2、C#程序
只要将.net 版本降到4.0或4.0以下即可。
如果使用数据库的连接dll文件根据版本更改生成的.net版本,我使用postgreSql数据库使用2.0报错,后升级到4.0好了。
*本文来自网络,仅限学习留用,禁止商业用途
如何让VS2013编写的程序在xp下运行的更多相关文章
- 如何让VS2012编写的程序在XP下运行
Win32主程序需要以下设置 第一步:在工程属性General设置 第二步:在C/C++ Code Generation 设置 第三步:SubSystem 和 Minimum Required Ve ...
- (转载)用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序“
原文地址:http://www.vcerror.com/?p=1483 问题描述: 用VC2013编译了一个程序,在Windows 8.Windows 7(64位.32位)下都能正常运行.但在Win ...
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
经常创建项目的时候,采用空项目,那么编译成功后,最好修改下sbusystem . 链接器->系统->子系统->控制台或windows 后面的"最低版本"是5.01
- 让用VS2013编写的程序在XP中顺利运行
vs2013编译好的exe文件拖到虚拟机xp中无法运行,提示错误,从网上搜索.找答案. 参考:http://blog.csdn.net/asanscape/article/details/387526 ...
- 让用VS2012/VS2013编写的程序在XP中顺利运行
转自:http://blog.csdn.net/asanscape/article/details/38752655/ 微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在V ...
- 让用VS2012/VS2013编写的程序在XP中顺利执行
微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序仅仅能在Vista/Win7/Win8上执行.但幸好还保留了生成XP程序的设置项.XP和Win2003的用户还是大量存在的,我们 ...
- 【Visual Studio】让用VS2012/VS2013编写的程序在XP中顺利运行(转)
原文转自 http://blog.csdn.net/asanscape/article/details/38752655 微软为了推销自家平台,默认配置下VS2012和VS2013编写的应用程序只能在 ...
- 如何让VS2013编写的程序
总体分c++程序和c#程序 1.c++程序 这个用C++编写的程序可以经过设置后在XP下运行,主要的“平台工具集”里修改就可以. 额外说明:(1)程序必须为Dotnet 4.0及以下版本.(XP只支持 ...
- VS2010 和VS2012 的程序在XP上运行的方法
问题表象: VS2012编译的程序不能再XP下运行 解决办法: 1.工程设置的方法 在vs2012里,右键 属性->配置属性-常规->平台工具集->选个VS2008什么的就ok了~ ...
随机推荐
- Minor GC和Full GC区别(转)
http://blog.csdn.net/u010796790/article/details/52213708 概念: 新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Ja ...
- Android事件处理下(按键、触摸屏和滚动球的一些实现细节)
http://www.cnblogs.com/andtt/articles/2145563.html 对于按键事件,调用mDevices[i]->layoutMap->map进行映射.映射 ...
- 关于HttpRuntime.Cache的运用
存Cache方法: HttpRuntime.Cache.Add( KeyName,//缓存名 KeyValue,//要缓存的对象 Dependencies,//依赖项 AbsoluteExpirati ...
- ThinkPHP5执行流程分析
1.入口文件(tp5\public\index.php) 作用: 1)定义目录常量. 2)加载框架引导目录. 2.框架引导目录(tp5\thinkphp\start.php) 作用: 1)引导基础文件 ...
- 20135302魏静静——linux课程第三周实验及总结
linux课程第三周实验及总结 一.实验:跟踪分析Linux内核的启动过程 使用gdb跟踪调试内核从start_kernel到init进程启动 使用实验楼的虚拟机打开shell cd LinuxKer ...
- 置顶,置低实现与window.scroll
//置顶,置低实现 $('#updown .up').click(function(){$('html,body').animate({scrollTop: '0px'}, 300);}); $('# ...
- apache解压版安装服务
解压版也就是绿色版 到apache/bin目录 然后运行下面命令 httpd.exe -k install -n "Apache24" 如果要卸载服务的话,就是下面这个命令 htt ...
- Cookie和Session的工作原理及比较
一.Cookie详解 (1)简介 因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现.在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两饮料 ...
- AtCoder Regular Contest 078D
两边bfs,先一边找到从1到n的路径并记录下来,然后挨个标记,最后一边bfs找1能到达的点,比较一下就行了 #include<map> #include<set> #inclu ...
- 1-15-2-RAID5 企业级RAID磁盘阵列的搭建(RAID1、RAID5、RAID10)
RAID5的搭建 第一步:添加四个磁盘,开机并检查(略过) 第二步:使用fdisk命令分别对四个磁盘进行分区,效果如下图: 第三步:使用mdadm命令创建RAID5磁盘阵列 [root@localho ...