У меня есть приложение MFC, которое я хочу распространять через USB-накопители.
Одним из требований к приложению является то, что когда пользователь отключает USB-флеш-накопитель, приложение MFC должно выйти само.
Я добавил код, чтобы обнаружить удаление флэш-памяти USB и выйти из приложения, когда это произойдет.
Приложение работает нормально в большинстве случаев, когда USB-накопитель отключен.
Но иногда (50%) я получаю «AppName.exe перестал работать». сообщение об ошибке в Windows 7. При работе под отладчиком, я получаю больше информации, и это «Исключение первого шанса: 0xC0000006: Ошибка страницы». ошибка.
После некоторого поиска в Google эта ошибка, по-видимому, вызвана тем фактом, что базовый носитель удален и диспетчер памяти не может прочитать с носителя (в данном случае USB-накопитель).
Ссылка 1: На странице ошибка 0xc0000006
Ссылка 2: http://blogs.msdn.com/b/oldnewthing/archive/2008/12/04/9172708.aspx
Это приложение MFC представляет собой небольшую программу с одним исполняемым файлом. У меня вопрос, есть ли способ заставить ОС Windows загрузить весь файл .exe в память перед его выполнением. Я думаю, что если я смогу заставить Windows загрузить всю программу в память перед выполнением, то диспетчеру памяти не понадобится доступ к диску, когда USB-накопитель извлечен, а проблема с нежелательными сообщениями об ошибках может просто исчезнуть.
Спасибо за помощь!