Я столкнулся с ошибочной проблемой _CrtIsValidHeapPointer в отладочной версии библиотеки DLL, которая скомпилирована с использованием компилятора msvc2017.Когда отладочная версия (с отладочной версией vc runtime) загружается и работает, производительность ужасна.Я подтвердил, что большая часть процессора используется при вызове _CrtIsValidHeapPointer, который вызывается из оператора delete или free (функция C).Поскольку довольно часто выделяется и освобождается объект в куче, часто вызывается _CrtIsValidHeapPointer, что приводит к очень медленному взаимодействию, а некоторые вещи могут привести к зависанию программы.
Я перепробовал много разных методов, вот что я нашел:
- Связывание со статической версией lib или dll-версией VC CRT не имеет значения.
- Использование WinSDK 8.1 или 10.0 не имеет значения
- При запуске dll под Win10 1803 все работает нормально.Под Win10 1809, лаги и не отвечает.
Теперь я понятия не имею, почему версия Win10 ведет к другому поведению и как.Любая помощь будет оценена.