Сбой FileDialog при заполнении нижних 4 ГБ

, чтобы отловить ошибки усечения указателя в 64 битах, я добавил упомянутый здесь фрагмент кода, который резервирует нижние 4 ГБ памяти, поэтому выделенные блоки выше 32 бит. В тестовом приложении MFC x64 я первым делом вызываю функцию резервирования в InitInstance (). Затем я добавил кнопку, которая просто выполняет:

CFileDialog dlg(TRUE);
dlg.DoModal();

Вызов DoModal в конечном итоге дает сбой где-то со стеком вызовов в «ничейной стране»:

>   000000018000163b()  
    0000000100000024()  
    0000000000000001()  

Это не специфично для MFC, так как я получаю такое же поведение с .NET FileDialog. Я думаю, что это что-то не в моих руках, поскольку фактический fileDialog ненадолго появляется, а затем вылетает. Похоже на расширение оболочки или что-то в этом роде, но я не могу понять, откуда оно исходит, так как стек вызовов не помогает - но я хочу узнать, могу ли я что-нибудь сделать!

Если я удалю специальную функцию резервирования, я больше не получу вылетов.

Озадачены!

8
задан Francis Boivin 23 February 2012 в 13:58
поделиться