Я занимаюсь разработкой библиотеки C ++ (DLL). Когда я создаю минимальный проект MFC (VS2017), который связывается с этой DLL, все в порядке. Но как только какая-либо функция библиотеки используется приложением 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.
- В процессе отладки я скомпилировал DLL с CMake, чтобы использовать настройки, которые являются максимально стандартными. Но без изменений.