2013-10-05 2 views
0

В моей программе мне действительно нужно использовать обработчики исключений SEH, которые ловят ошибки, такие как AccessViolation & и т. Д., Но обработчики работают только в сборке Debug.__try и __except не работает в Release build

У меня включена такая же опция в выпуске сборки, но она не работает.

Как включить SEH в режиме Release ANYWAY?

Спасибо!

__try { /* crash code */ } 
__except(EXCEPTION_EXECUTE_HANDLER { MessageBox("Crash prevented"); } 

Работает в режиме отладки, но не в выпуске (сбоях).

+0

Нет ничего особенного в SEH в сборке Release. Никто не может догадаться, что «это не работает» может означать, если вы не будете описывать, что вы видите, что не так и не публикуете фрагмент. –

+0

@ Ханс Пассент Relax. Если вам нужно специальное объяснение: моя программа в режиме отладки обрабатывает исключения SEH (работает обработчик), в режиме выпуска просто нет. Конфигурация такая же, как в большинстве случаев, за исключением разницы в режимах Release/Debug. – Loryan55

+0

Хорошо LOLs, пришло время закрыть вопрос как «Offtopic» или «Not constructive»! – Loryan55

ответ

1

После игры с настройками больше я нашел решение. В конфигурации Release мне пришлось активировать «Основные проверки времени выполнения» на странице «Генерация кода», чтобы включить обработчики исключений SEH.

Опция «Базовые проверки времени выполнения» не может использоваться с включенной оптимизацией.

+0

Привет, Лориан, я воспроизвожу авария на Windows 10 x64. но не в Windows 7 x64 –