Заставить ОС Windows загрузить весь исполняемый файл приложения (.exe) перед выполнением приложения - PullRequest
3 голосов
/ 20 декабря 2011

У меня есть приложение 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-накопитель извлечен, а проблема с нежелательными сообщениями об ошибках может просто исчезнуть.

Спасибо за помощь!

1 Ответ

8 голосов
/ 20 декабря 2011

Свяжите программу с опцией / SWAPRUN . Также доступно как опция EditBin.exe, чтобы сделать это позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...