faad2在C++环境下的运行依赖库

本文探讨了解决在Windows 7上发布转码应用时出现的“CLR20r3”错误的方法。通过详细分析,确定所需动态库并调整编译环境,最终实现了应用的正常运行。

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

继《将faad2转码方法移植到C++》之后,在将转码应用发布到Win7上的时候,总是出现“CLR20r3”的错误,这是一个缺少运行时环境的错误,使用Depends复研究之后,发现仅仅是简单的转码应用就需要这些动态库:ATL110.dll、GPSVC.dll、IESHIMS.dll、MFC110.dll、MSVCP110.dll、MSVCR110.dll、SYSNTFY.dll。

分析为什么需要这么多库的原因,得到如下结论:

(1)我用VS2012将faad2封装为ATL库,并且添加了支持MFC特性,所以需要ATL110.dll、MFC110.dll、MSVCP110.dll、MSVCR110.dll这些ATL和MFC库,而其中MFC110.dll又需要IE组件库IESHIMS.dll;

(2)项目需要组策略相关的GPSVC.dll,这个库依赖SYSNTFY.dll;

(3)项目使用x86平台编译(faad2在x64环境下需要一些修改),库编译为Release;

(4)在使用环境中利用管理员身份注册libFaad2ATL(我生成ATL库后的名字)。

经过上述设置后,已经可以成功使用动态库进行转码了。

最后得出的关键点:编译环境为32位Release,并且各个库要保持一致。如有不恰当的地方欢迎斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值