dll中使用到容器的全局变量在mfc中报内存泄漏

这几天发现一个蛋疼的问题,在vs2015上,dll中使用到容器的全局变量在mfc中报内存泄漏。
这里写图片描述
这是怎么出现的呢,我加入了opengl的依赖后就出现了。是不是很神奇?而且只针对那些使用到容器的全局变量。

例如

char tmp[111]; //不会报泄漏。
  std::string sd = "why is that happened"; //报泄漏

那到底是什么原因呢?
我猜是由于opengl库的加入扰乱了原来进程卸载时的模块释放顺序(这不代表出错),在mfc主程序退出时检测内存泄漏的时刻,dll里面的容器全局变量还没析构导致误报,可能在mfc主程序检测完才会析构。另外,opengl能有这么大“能耐”可能是因为他是系统自带库且全局容器变量特殊处理有关。
基于这猜测网上找一下别人会不会出现这问题。找到一些类似的。
http://blog.csdn.net/clever101/article/details/7907417
http://blog.csdn.net/changbaolong/article/details/7935192
不是我的问题就好。
对了在vs2015上检测内存泄漏有自带的工具,很方便,下次专门写个文章介绍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值