Среда: Windows 10 Home 10.0.16299
MS Visual Studio Community 2017 Версия 15.6.6
Параметры компиляции: 64 бит - Набор многобайтовых символов
СЧерез несколько дней я столкнулся с очень раздражающей проблемой утечек памяти.Я много пробовал, но проблемы все еще остаются.
Неожиданно я получил следующие сообщения о выходе из приложения:
{7196} normal block at 0x000001FD42D0EA90, 66 bytes long.
Data: <` f ) ) > 60 C6 CC 66 F7 7F 00 00 29 00 00 00 29 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\oleinit.cpp(84) : {749} client block at 0x000001FD40F735F0, subtype c0, 104 bytes long.
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dumpcont.cpp(23) : atlTraceGeneral - a CCmdTarget object at $000001FD40F735F0, 104 bytes long
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {747} normal block at 0x000001FD40F78750, 248 bytes long. Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\occmgr.cpp(794) : {746} normal block at 0x000001FD40F5F1D0, 8 bytes long.
Data: < f > F0 BB A3 66 F7 7F 00 00
, а также я получил следующие сообщения о выходе из приложения (я получил 12на самом деле)
{348} normal block at 0x00000236C88FE4A0, 69 bytes long.
Data: <` > , , > 60 C6 3E BE F6 7F 00 00 2C 00 00 00 2C 00 00 00
Итак, когда я добавляю следующую строку .....
_CrtSetBreakAlloc(348);
Компилятор разрывается с сообщением xxxx.exe сработал точку останова. *+1018 *
Всегда то же самое место: линия
* * * тысяча двадцать один +1022 * проблема с функцией возникшие, которые прошли CString в качестве эталонного параметра.Вот так:
int CFoo::GetData(CString strMainData, CString& strData, int nPos, int nLen)
{
strData = strMainData.Mid(nPos + 2, nLen);
return ( nPos + 2 + nLen);
}
Любая подсказка, почему я получил это?Я работаю над этим приложением уже несколько недель.Я никогда не сталкивался с этой проблемой.Я изменил функцию, чтобы использовать char * в качестве параметра и копию CSring в вызывающей функции, но проблема остается.Такое поведение появилось две недели назад (но я не заметил этого напрямую).Это могут быть настройки компилятора?