Как избежать сбоев BEX при использовании DCEF3 в Delphi 7 на Windows 2008 R2Delphi , Технологии , DDECEF (Chromium Embedded Framework) vs DEP (Data Execution Prevention)ВведениеВ статье рассматривается проблема, связанная с использованием Chromium Embedded Framework (CEF) версии 3.1547.1412 в сочетании с Delphi 7 на операционных системах Windows 2008 R2, которая приводит к сбоям типа BEX. Обсуждаются причины возникновения проблемы и предлагаются пути её решения. ПроблемаПри запуске приложений, использующих CEF в Delphi 7, на некоторых машинах с установленной операционной системой Windows Server 2008 R2 возникают критичекие ошибки типа BEX. Эти ошибки связаны с механизмом Data Execution Prevention (DEP), который является частью политики безопасности Windows и предназначен для предотвращения выполнения кода из неисправленных частей памяти. Подробности о DEPData Execution Prevention - это функция, включенная в операционные системы Windows, начиная с XP SP2. Она позволяет системе отслеживать, какие части памяти используются для хранения данных и какие - для выполнения кода. Если обнаруживается попытка выполнить код из неподходящей области памяти, DEP блокирует эту операцию. Пример APPCRASHОшибки BEX часто приводят к сбоям приложений с выводом сообщений типа APPCRASH. В представленном случае, ошибка связана с модулем Решение проблемыАвтор вопроса смог временно решить проблему отключением DEP через команду командной строки, однако это не является приемлемым решением для конечных пользователей. Поэтому требуется поиск более глубокого и постоянного решения. Альтернативные пути решения проблемы
Подтвержденный ответПо данным из источников, таких как Delphi applications and the TSAWARE header flag и Microsoft KB 2279689, добавление в заголовок программы директивы ЗаключениеПри использовании Chromium Embedded Framework с Delphi 7 важно учитывать взаимодействие между DEP и исполняемым кодом. Для избежания критических ошибок BEX необходимо подходить комплексно к решению проблемы, включая обновление среды разработки, модификацию исходных кодов или использование дополнительных инструкций компилятора. Пример добавления TSAWARE директивы в Delphi:
Этот пример кода необходимо включить в начало вашего проекта на Object Pascal (Delphi), чтобы обеспечить корректное взаимодействие с механизмами защиты Windows. Проблема связана с несовместимостью Chromium Embedded Framework (CEF) и Delphi 7 на операционных системах Windows 2008 R2, что приводит к критических ошибкам BEX из-за включенного механизма Data Execution Prevention (DEP). Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |