vs2008中的MFC用共享DLL和静态中使用MFC,遇到的问题

    最近调试一个项目,VS2008的MFC系统,里面用到了很多开源(后面调试问题时以为是开源库的问题,其实没有关系)。

问题是这样的,系统在我机器上用vs2008编译好运行正常,然后移到另外一个没有装VS2008的机器上不能运行。

调试过程中的一系列方法:

1、下载VC运行库,安装后,重启,问题依然在。

2、下载VS2008的VC CRT运行时库,安装后,重启,问题依然存在。

3、安装VS2008 ,问题解决》

    说明肯定缺少 VS2008中的库。

4、进一步缩小问题原因,

     只安装了VS2008安装包中的 Visual C++静态多线程CRT库, 问题解决。

  

     但是发布的时候,给客户安装系统的时候,不可能把VS2008安装,所以继续查找原因。

5、请教好介个大神、查找网上资料,确定具体的原因。

    系统配置属性,在共享库DLL中使用MFC、在静态库中使用MFC 有区别的。

常规->MFC的使用代码生成->运行库
在共享DLL中使用MFC多线程DLL(/MD)
在静态库中使用MFC多线程调试(/MTD)

区别:(1)、在共享库中使用MFC,没有把系统VC的CRT运行库,编译到可执行文件中,可执行文件相对较小,但移植到别的电脑中若缺少CRT运行库,就不能运行。

(2)、在静态库中使用MFC,是把系统VC的CRT运行库,以静态的方式编译到可执行文件中,相对可执行文件比较大,但是移植到另一个电脑中,可以不需要CRT运行库,就可以直接运行。

若果发布,建议使用第二种。

参考网址资料:http://www.cnblogs.com/lidabo/p/3154680.html

    

VS2008生成的程序无法在其它电脑上运行,提示系统无法执行指定的程序

http://blog.csdn.net/cqyczw12/article/details/7975172

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值