Моя немедленная реакция заключается в том, что это звучит как утечка ресурса, когда сбой происходит, когда у вас больше нет ресурса правильного типа.
[Я удалил оставшуюся часть предыдущего ответа, потому что, основываясь на комментариях Патрика и небольшом расследовании, он был явно неприменим к рассматриваемой проблеме. ]
После комментария Патрика я провел быструю проверку и продублировал поведение под Windows 7. Я начал с действительно минимальной программы (базовая программа, сгенерированная VS 2008 для проекта Win32) и все Я добавил запись на несуществующий адрес. Конечно же, вы не получите никаких признаков того, что случилось что-то плохое.
Просто ради ухмылки я сделал быстрый тест, чтобы точно понять, как он реагирует на исключение. Что бы это ни стоило, оно не возобновляется после исключения, оно просто перехватывает его и пропускает оставшуюся часть кода в обработчике WM_PAINT.
Я немного посмотрел в MSDN, но до сих пор не нашел никакой документации, которая объясняет, как и почему это произошло, можно ли его отключить, и если да, то как, или многое другое. Я должен согласиться, хотя: это действительно серьезная проблема - если я вызвал нарушение прав доступа (нет, не могло произойти!), Я хочу, чтобы программа аварийно завершилась как можно более тщательно и быстро. Маскировка ошибки (особенно такой серьезной, как нарушение прав доступа) - ужасно плохая идея!