dll找不到问题

用vs2010编写的程序经常会发生的一个问题。在自己的机器上运行的好好的,但是在别的机器上就会发生没有找到MSVCR100D.dll。这是 个很头疼的问题。对于一些代码量几百行的小程序,我不可能要求其他电脑也一定要配有MSVCR100D.dll这个dll。当然解决方法也有,但是我也不 可能要求所有的电脑都装上.net framwork 2.0。微软又给CSer们出了个难题。
原因:
工程默认没有使用静态联编,没有把必须的DLL库一块编译进去导致的。

解决方法:

在vs2010下,按ALT+F7,打开工程属性–>配置属性–>代码生成–>运行时库–>选多线程(/MT)

英文版为:Options->Configuration Properties->C/C+±>Code Generation->Runtime Library->Multi-threaded(/MT)

  • MT选项:静态链接LIB版的C和C++运行库。在链接时就会在将C和C++运行时库集成到程序中成为程序中的代码,程序体积会变大。
  • MTd选项:LIB的调试版。
  • MD选项:使用DLL版的C和C++运行库,这样在程序运行时会动态的加载对 应的DLL,程序体积会减小,缺点是在系统没有对应DLL时程序无法运行。
  • MDd选项:表示使用DLL的调试版。

在配置中,把“公共语言运行库支持”设置为:无公共语言运行库支持 就可以了

再次编译的时候可能产生错误,那么清理解决方案,再重新生成一次,就OK了,不过自己另外加的库文件还是要随程序一起打包的。

另外需要注意的是,报错为msvcp100d.dll,说明是在DEBUG下编译的程序,d表示DEBUG。报错为msvcp100.dll,说明是在RELEASE下编程的程序。也就是说,带d的都是DEBUG版本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值