是否可以在 MFC 应用程序的调试版本中替换内存分配器?
我想在 MFC 应用程序中使用电围栏。我想跟踪 new
/ delete
,如果我可以跟踪 malloc
/ free
这是一个额外的好处。
不幸的是,MFC 重新定义了 new
和 delete
- 但使用宏 (DEBUG_NEW) - 所以我无法使用标准 C++ 方法来重新定义它们。 (MFC 将它们定义为具有不同的签名,并将源文件和行号作为附加参数)。
有没有办法强制所有 new
/ delete
通过我的分配器,并阻止 MFC 尝试获取这些分配器?
I'd like to make use of Electric Fence in an MFC application. I'd like to track new
/ delete
, and if I can track malloc
/ free
that's an added bonus.
Unfortunately, MFC redefines new
and delete
- but using macros (DEBUG_NEW) - so I can't use the standard C++ method of redefining them. (MFC defines them to have different signatures, with source file and line numbers as additional parameters).
Is there any way to force all new
/ delete
s to go via my allocator, and stop MFC trying to grab these allocators?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过在 stdafx.h 末尾重新定义 DEBUG_NEW 来停止 MFC 对 new 的挂钩
You can stop the MFC hooking of new by redefining DEBUG_NEW in the end of stdafx.h