关于使用MFC DLL时提示内存泄漏问题

      这两天按照之前的习惯,在开发过程中使用调试模式运行的时候,发现有意料之外的内存泄漏问题。经过不断的核查定位,最终发现是在使用FreeLibrary函数卸载自己写的一个MFC DLL之后报的内存泄漏。然后又Review了好几遍,十分确定自己的代码没有问题!然后注释了一对代码,发现就算只用了LoadLibrary和FreeLibrary也一样会报内存泄漏。然后找了一下调用MFC DLL内存泄漏相关问题的解决方案,什么取消使用共享的DLL中使用MFC,改预定义、依赖库等等,都没有解决问题。最后只能先测试其他功能。。。

      后面跑着跑着,突然报mfc140ud.dll内存访问错误,突然灵光一现,想说会不会是字符集编码导致的问题!!然后核对了一下MFC DLL和Exe项目的设置。果然,一个设成多字节字符集,一个设成了unicode字符集。。。然后改了一下字符集设置,果然就不报内存泄漏了

      本来字符集应该不影响程序功能的,但是VC中不同字符集所依赖的mfc运行时库是不一样的,估计是运行时库冲突导致的问题吧。因为我其他不使用MFC库的DLL也是使用的多字节字符集,但是并不会导致这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值