Is it possible to replace the memory allocator in a debug build of an MFC application?
-
25-09-2019 - |
Question
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?
Solution
You can stop the MFC hooking of new by redefining DEBUG_NEW in the end of stdafx.h
#undef DEBUG_NEW
#define DEBUG_NEW new
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow