去掉msvcr90的依赖以及atl90.dll的依赖

本文介绍了解决由VC2008编译的OCX或DLL工程中出现的应用程序配置不正确的错误方法。通过调整MFC使用设置并重新编译,可以消除不必要的DLL依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个提示给出了很详细的答案,就是“应用程序配置不正确”。什么是应用程序配置不正确?就是缺少这个OCX控件以及其外部链接的DLL所依赖的相关运行库DLL;一般来说,这种现象出现在用VC2008编译的OCX或其外部链接的DLL工程上。

通过一一查看OCX及其外部链接的DLL项目依赖DLL,果然有一个是由VC2008编译的,它的DLL依赖:


         这个模块的程序员确定他的DLL工程是用VC2008做的,但没有依赖VC2008/MFC的库: 

造成这种现象即“使用标准Windows库”的工程要依赖于msvcr90.dll,是因为这个项目是由VC2008创建,自动有这个依赖关系。

怎么解决呢?很简单,步骤如下:

        1、将项目默认值的MFC使用改成“在静态库中使用MFC

         2、编译一下,不成功不要紧。这里就没法成功:

         3、将项目默认值的MFC使用改回去,即“使用标准Windows库”;编译,成功,项目就不再有msvcr90.dll依赖了:

         再次注册,就没问题了: 

        出现这种情况,可以看出项目组的管理挺混乱的,因为工欲善其事,必先利其器,每个开发员的开发工具都不同,就额外增加了系统集成的复杂度。另外,项目组问题反馈的途径很不顺畅。

在编写ATL项目时如果在项目属性中选择动态连接到ATL库则编译完成后DLL中会有ATL90.DLL的依赖找不到类似上面的情况,可以选择静态连接到ATL库来解决这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值