c++ - MFC 应用程序使用 DLL 时的内存泄漏(误报)
问题描述
我开发了一个 C++ 库 (DLL)。当我创建一个与此 DLL 链接的最小 MFC 项目(VS2017)时,它没问题。但是,只要 MFC 应用程序使用该库的任何函数,MFC 项目的调试器就会抱怨内存泄漏(许多行如下所示):
Detected memory leaks!
Dumping objects ->
{2255} normal block at 0x000002A4B1F8C360, 48 bytes long.
Data: < > 10 BB F8 B1 A4 02 00 00 B0 BD F8 B1 A4 02 00 00
{2242} normal block at 0x000002A4B1F8BDB0, 48 bytes long.
Data: < > C0 C0 F8 B1 A4 02 00 00 F0 C2 F8 B1 A4 02 00 00
{2220} normal block at 0x000002A4B1F8C2F0, 48 bytes long.
Data: < > 80 C2 F8 B1 A4 02 00 00 10 C9 F8 B1 A4 02 00 00
这些都是误报,因为它也会在仅调用库的空测试函数时发生。此外,当库与非 MFC 项目链接时,不会发生这种情况。
什么会导致这些警告?相关信息:
- 一位 VS2013 用户说他可以通过更改他的 MFC 项目的字符集来避免这些警告。我已经在 VS2017 中测试过,但仍然收到警告。
- 一位 VS2017 用户说,当他延迟加载 DLL 时,警告消失了。
- 在调试过程中,我使用 CMake 编译了 DLL,以便使用尽可能标准的设置。但没有变化。
解决方案
推荐阅读
- regedit - 如何使用 CMD 脚本更改 regedit 的值?
- typescript - 如何修复我的 Stripe redirectToCheckout 集成错误?
- python - 使用 ROS 从相机中提取多帧
- docker - 在 docker 中运行时如何禁用 NGINX 日志记录
- mongodb - MongoDB 架构组织
- php - 如何获取当前帖子分类的术语名称?
- javascript - Google Recaptcha V2 Invisible - 加载时间大幅增加 - 破坏页面速度优化
- python - 我们可以通过指定纬度和经度从 flickr 下载特定地理位置的照片吗?
- dhall - Dhall - 表达式与注释不匹配,键入预期文本
- after-effects - After Effects 表达式:一个图层的表达式功能在引用另一图层时中断