Исключение SEH, выброшенное в приложении, отличном от .NET - PullRequest
1 голос
/ 21 декабря 2009

Я пишу приложение MFC, которое не использует .NET (для поддержки CLR установлено В настройках проекта Поддержка Common Language Runtime не поддерживается). Тем не менее, я получаю SEHException при выходе из приложения в сборке выпуска. Отладочная сборка выдает ошибку подтверждения, но окно ошибки исчезает примерно через полсекунды после того, как оно всплывает (чего я раньше не встречал), поэтому у меня нет возможности взглянуть на него.

Итак, главный вопрос: как приложение, которое не имеет управляемого кода, генерирует исключение Interop.SEHException?

Ответы [ 2 ]

4 голосов
/ 21 декабря 2009

Приложение без управляемого кода может генерировать исключение SEHException, поскольку обработка структурированных исключений (SEH) является частью Win32 и предшествует CLR. Вот ссылка с января 1997 года, где приводится ускоренный курс (ха!) На Win32 SEH .

2 голосов
/ 23 декабря 2009

Ах, это исправлено. Проблема заключалась в том, что я дважды вызывал свой код выхода (который включал в себя вызов PostQuitMessage()) из двух отдельных потоков. Исчезающий ящик был вызван тем, что очень скоро после исключения было вызвано exit(0) и программа завершилась.

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