总体分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好了。

*本文来自网络,仅限学习留用,禁止商业用途

最新文章

  1. 浅谈一下关于使用css3来制作圆环进度条
  2. angularJS获取json数据(实战)
  3. CSS前5课总结
  4. [php入门] 4、HTML基础入门一篇概览
  5. 物理主机win 7系统迁移至VMware ESXI服务器
  6. zepto源码--qsa--学习笔记
  7. MyEclipse配置Resin启动报错问题
  8. C++C#时间转换
  9. mvc5入门,经典教程。。
  10. Qt相关问题
  11. uva 10831 - Gerg's Cake(勒让德符号)
  12. Java经典编程题50道之三十
  13. termios结构体各成员的值(FreeBSD 12.0)
  14. Linux环境下Node.js的安装配置
  15. 怎么在父窗口调用它页面的iframe里面数据,进行操作?
  16. AngularJS实战之filter的使用一
  17. AS 注解处理器 APT Processor MD
  18. 【Unity笔记】寻路导航用NavMeshObstacle做动态阻挡
  19. 在WPF中UserControl
  20. ZT 苍天助曹不助汉哪

热门文章

  1. WebService发布协议--SOAP和REST的区别
  2. HDFS数据块
  3. M4中遇到的问题
  4. Spring笔记2——Spring中Bean的装配
  5. Linux命令awk
  6. Linux kernel 编译问题记录【转】
  7. git重命名分支名
  8. composer安装教程 windows系统 | Linux系统 | mac系统
  9. LA 3523 圆桌骑士(二分图染色+点双连通分量)
  10. npm install 报错 ECONNREFUSED