Сегодня при запуске проекта под отладчиком из IDE Delphi 7 неожиданно стало вылетать сообщение об исключении:
"External Exception C0000235".
В частности, данное исключении генерилось при вызове функции SelectDirectory.
Побродив по коду и не найдя причину возникновения исключительной ситуации, решил полазить по интернетам в поисках путей решения проблемы.
Чуть было не впал в депрессию ( :-D ) из-за того, что Яндекс по запросу "External exception C0000235" показал какие-то невнятные 3 страницы по тематике, никак не относящейся к моему вопросу.
Но вот Гугл просто воскресил меня из мёртвых!
Первая я же страница в результатах поиска заставила меня вздохнуть с облегчением!
Оказалось ничего страшного не произошло, и мир не перевернулся, просто в последних обновлениях Avira AntiVir добавлена дополнительная проверка на изменения в реестре, вносимые приложениями. Теперь Avira AntiVir блокирует доступ приложениям, открывающим реестр на запись, если они запущены из-под отладчика. А я как раз использую Avira AntiVir Personal.
Из переписки на форумах было взято временное решение - отключение защиты антивирусом реестра. Из всех предлагаемых оно самое быстрое для выполнения. Вам может понравится какое-либо другое. Снести Avira AntiVir, например, как предлагает Andreas Hausladen :-D, или "спрятать" файл avipbb.sys (Avira's Driver for RootKit Detection), как предлагает сотрудник Avira.
На форуме тех.поддержки было дано обещание исправить данную ситуацию, правда сроки не были названы.
Примененное мной решение:
1. Открыть Avira Antivir configuration.
2. Выбрать Expert Mode.
3. Перейти на вкладку General \ Security.
4. Снять галочку на "Protect files and registry entries from manipulation".
5. Перезагрузить компьютер.
6. Дождаться обновлений от Avira Antivir и восстановить защиту реестра.
Ссылки на обсуждения:
Avira AntiVir Personal Support Forum: External Exception C0000235 with Delphi
Avira AntiVir Premium Security Suite Support Forum External Exception C0000235 with Delphi
Embarcadero Discussion Forums: D2006 External Exception
Дополнительно. Описание кодов ошибок:
http://msdn.microsoft.com/en-us/library/e
http://androschuk.blogspot.com/2010/02/e
К примеру,
STATUS_HANDLE_NOT_CLOSABLE = $C0000235
happy