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

**Борьба с отсутствием модуля Vcl.OleAuto в 64-битных приложениях Delphi XE7: использование CreateOleObject**

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

Борьба с отсутствием модуля Vcl.OleAuto в 64-битных приложениях Delphi XE7: использование CreateOleObject

Вопрос о совместимости компонентов при переходе на 64-битные приложения в среде разработки Delphi актуален для многих разработчиков. Особенно это касается использования функций, работающих с объектами COM, таких как CreateOleObject. В статье мы рассмотрим, как решить проблему с отсутствием модуля Vcl.OleAuto в 64-битных программах на примере Delphi XE7.

Проблема

При попытке использовать функцию CreateOleObject в 64-битной программе на Delphi XE7, разработчики сталкиваются с ошибкой:

[dcc64 Fatal Error] Unit1.pas(33): F1026 File not found: 'Vcl.OleAuto.dcu'

Это происходит потому, что модуль Vcl.OleAuto, необходимый для работы с COM-объектами, отсутствует в 64-битной версии библиотеки. В то время как в 32-битных программах всё работает корректно:

uses
  Vcl.OleAuto;
...
FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

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

Согласно подтверждённому ответу, исходный код для Vcl.OleAuto всё ещё поставляется в комплекте, но в 64-битной директории lib отсутствует файл Vcl.OleAuto.dcu. Вместо этого рекомендуется использовать модули System.Win.ComObj и/или System.Win.ComServ. Важно отметить, что исходный код Vcl.OleAuto отмечен как устаревший, и в нём указаны альтернативные модули для использования.

Изучение исходного кода Vcl.OleAuto показывает, что в нём содержится некоторый 32-битный ассемблерный код, который не был перенесён. Предполагается, что компания Embarcadero решила не переносить этот код на 64-битную платформу, поскольку модуль уже считается устаревшим.

Альтернативные подходы

Рассмотрим пример использования System.Win.ComObj для создания COM-объекта:

uses
  System.Win.ComObj;
...
FSWbemLocator := ComObjectCreate('WbemScripting.SWbemLocator');

Использование этого модуля позволяет работать с COM-объектами в 64-битных приложениях, не прибегая к использованию устаревшего Vcl.OleAuto.

Заключение

Переход на 64-битные приложения в среде Delphi требует внимания к деталям и понимания изменений в структуре модулей. Использование новых модулей, таких как System.Win.ComObj, является ключом к успешной миграции и поддержанию совместимости с COM-объектами в современных приложениях.

Эта статья предоставляет разработчикам, сталкивающимся с проблемой отсутствия Vcl.OleAuto в 64-битных программах, пошаговое руководство по решению этой проблемы и альтернативные подходы для работы с COM-объектами.

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

Описание: Вопрос связан с решением проблемы совместимости при использовании функции `CreateOleObject` в 64-битных приложениях Delphi XE7, где отсутствует модуль `Vcl.OleAuto`, и предложены альтернативные способы работы с COM-объектами.


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

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




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


:: Главная :: OLE ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2024-12-26 16:19:47/0.0033769607543945/0