Верификатор приложения ограничивает выделение кучи по умолчанию?

В настоящее время я тестирую приложение, которое должно открывать большие файлы в Application Verifier 6.3 для 64-битных систем. Мое заявление должен быть в состоянии выделить около 100 — 200 МБ памяти, которая раньше хорошо работала в режиме отладки и выпуска.

Это код, который я использую для выделения памяти:

[...]
char* fileStream;
try
{
fileStream = new char[fileLength]; // The fileLength is usually about 100 000 000 and 200 000 000
}
catch (std::bad_alloc& ba)
{
MessageBox(NULL, "Failed to allocate enough memory for the required operation", "Not enough memory", MB_ICONERROR | MB_OK);
return;
}
[...]

Я добавил приложение в верификатор приложений и включил все основные тесты:

введите описание изображения здесь

Теперь, как ни странно, new char[fileLength] всегда возвращается NULL для файла размером 97 МБ! Что, очевидно, привело к нарушениям доступа позже. Так что теперь у меня больше проблем, чем раньше …

Применяет ли Application Verifier некоторые ограничения на выделение кучи по умолчанию? Можно ли их как-то отключить?

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector