Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как избежать сбоев BEX при использовании DCEF3 в Delphi 7 на Windows 2008 R2

Delphi , Технологии , DDE

CEF (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 и предназначен для предотвращения выполнения кода из неисправленных частей памяти.

Подробности о DEP

Data Execution Prevention - это функция, включенная в операционные системы Windows, начиная с XP SP2. Она позволяет системе отслеживать, какие части памяти используются для хранения данных и какие - для выполнения кода. Если обнаруживается попытка выполнить код из неподходящей области памяти, DEP блокирует эту операцию.

Пример APPCRASH

Ошибки BEX часто приводят к сбоям приложений с выводом сообщений типа APPCRASH. В представленном случае, ошибка связана с модулем dhcpcsvc6.DLL, что указывает на проблему в работе с сетью или сетевыми компонентами.

Решение проблемы

Автор вопроса смог временно решить проблему отключением DEP через команду командной строки, однако это не является приемлемым решением для конечных пользователей. Поэтому требуется поиск более глубокого и постоянного решения.

Альтернативные пути решения проблемы

  1. Обновление Delphi до версии, которая поддерживает DEP. Например, начиная с Delphi 2005, RTL уже предусматривает поддержку DEP.
  2. Перекомпиляция CEF без включения кода, связанного с DEP. Это может потребовать изменения исходных кодов Chromium и их компиляции отдельно от CEF.
  3. Использование обхода на уровне операционной системы с помощью bcdedit, что также не является идеальным решением.

Подтвержденный ответ

По данным из источников, таких как Delphi applications and the TSAWARE header flag и Microsoft KB 2279689, добавление в заголовок программы директивы {$SETPEOPTFLAGS $8000} может помочь избежать проблем с DEP. Это изменение указывает компилятору добавить информацию TSAWARE, которая сообщает Windows о том, что программа не использует выполнение кода в данных (DEP) и требуется соответствующее обращение.

Заключение

При использовании Chromium Embedded Framework с Delphi 7 важно учитывать взаимодействие между DEP и исполняемым кодом. Для избежания критических ошибок BEX необходимо подходить комплексно к решению проблемы, включая обновление среды разработки, модификацию исходных кодов или использование дополнительных инструкций компилятора.

Пример добавления TSAWARE директивы в Delphi:

program MyProgram;
{$SETPEOPTFLAGS $8000} // Добавление директивы для поддержки DEP
uses
  System.SysUtils;
begin
  // Основной код программы
end.

Этот пример кода необходимо включить в начало вашего проекта на 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




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DDE ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:32:08/0.003338098526001/0