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

Исправление ошибки доступа при создании экземпляра `TPivotTable` в Delphi 11.2 Alexandria

Delphi , Компоненты и Классы , Компоненты

Исправление ошибки доступа при создании экземпляра TPivotTable в Delphi 11.2 Alexandria

В последнее время разработчики, использующие Delphi 11.2 Alexandria для создания приложений, столкнулись с новой проблемой: при попытке создать экземпляр класса TPivotTable возникает ошибка доступа. В предыдущих версиях Delphi такой проблемы не наблюдалось, и процесс создания экземпляра TPivotTable происходил без сбоев.

Шаги для воспроизведения ошибки:

  1. Импортировать тип библиотеки для OWC11 (Office Web Components).
  2. Создать экземпляр TPivotTable.
  3. При выполнении этих действий произойдет ошибка доступа.

Отладка показала, что проблема связана с проверкой лицензии на строке 837 в модуле Vcl.OleCtrls. Подозрения вызвало значение переменной LicKeyStr, которое выглядело подозрительно некорректным. Однако, стоит отметить, что такая же ситуация наблюдалась и при сборке в предыдущих версиях Delphi, в частности, в Berlin, откуда осуществляется миграция, и никаких сбоев не происходило. В этих версиях все работало исправно, но с новым компилятором в Alexandria возникли проблемы.

Проблема не кажется связанной с конкретным кодом приложения, поскольку ее можно воспроизвести даже в простой программе, которая не выполняет никаких действий, кроме создания объекта TPivotTable.

Альтернативные ответы и комментарии:

В ходе дальнейшего исследования выяснилось, что причиной ошибки стало новое по умолчанию включенное компоновщиком (linker) свойство NXCompat/DEP в Delphi 11. Это свойство отсутствует в настройках компоновщика в предыдущих версиях Delphi, где оно отключено по умолчанию.

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

Проблема была устранена путем отключения опции NXCompat (Data Execution Prevention) в настройках компоновщика. Эта опция, включенная по умолчанию в Delphi 11, приводила к сбою при работе с OWC. Отключение данной опции позволило избежать ошибок доступа при работе с TPivotTable.

Пример отключения DEP в компоновщике Delphi:

// Откройте настройки компоновщика в вашем проекте
// Найдите раздел, связанный с настройками безопасности
// Отключите опцию "Prevent Data Execution compatible" (NXCompat/DEP)

// Примерный код настройки проекта не предоставляется, так как это действие выполняется в интерфейсе IDE.

Важное примечание

Разработчикам следует быть внимательными при использовании устаревших библиотек, таких как OWC, поскольку они могут не поддерживать новые функции и настройки безопасности современных версий Delphi. В долгосрочной перспективе рекомендуется рассмотреть возможность замены таких библиотек на более современные и совместимые с текущими версиями Delphi.


Этот ответ основан на реальном случае, когда разработчики столкнулись с ошибкой при работе с TPivotTable в среде Delphi 11.2 Alexandria. Проблема была связана с изменением настроек компоновщика в новой версии среды разработки. После отключения определенной опции, связанной с безопасностью исполнения кода, проблема была успешно решена.

Создано по материалам из источника по ссылке.

Разработчики столкнулись с ошибкой доступа при создании объекта `TPivotTable` в Delphi 11.2 Alexandria из-за нового свойства компоновщика, которое было включено по умолчанию и приводило к несовместимости с устаревшей библиотекой OWC.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Компоненты ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-13 16:03:07/0.0038719177246094/0