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

Создание манифеста для использования TLB без глобальной регистрации в приложениях Delphi

Delphi , Технологии , COM и DCOM

Создание манифеста для использования TLB без глобальной регистрации в приложениях Delphi

При разработке приложений на Delphi часто возникает необходимость использования TLB-файлов для определения интерфейсов серверов. Однако глобальная регистрация этих файлов во время установки может привести к проблемам при одновременной установке нескольких экземпляров программы, поскольку это может нарушить регистрацию TLB. В данной статье мы рассмотрим, как создать манифест для использования TLB-файлов без их глобальной регистрации, что позволит избежать указанных проблем.

Проблема глобальной регистрации TLB

В вашем Delphi-приложении Client.exe используются TLB-файлы для определения интерфейсов серверов. Объекты, соответствующие этим интерфейсам, создаются с помощью System.Win.ComObj.CreateRemoteComObject. ТLB-файлы регистрируются глобально во время установки с помощью regtlibv12.exe и удаляются при удалении программы, что делает невозможной установку и удаление нескольких экземпляров одного и того же программного обеспечения без риска нарушения регистрации TLB.

Решение с использованием Registration Free COM

Идея состоит в использовании TLB-файлов без их регистрации, но с помощью манифеста. Вы знаете, как использовать настраиваемый манифест приложения Windows в Delphi, но не знаете, как извлечь информацию из TLB-файлов и создать правильный манифест.

Инструменты для создания манифеста

Вы нашли инструмент Mt.exe, который может использоваться для генерации манифестов, но он требует соответствующего DLL-файла при использовании параметра -tlb, хотя в вашем приложении таких файлов нет, так как COM-объекты создаются на удаленных машинах. Кроме того, Mt.exe не поддерживает передачу нескольких TLB-файлов в параметрах. Другие инструменты, такие как Make My Manifest или Unattended Make My Manifest, недоступны или не помогли вам.

Создание манифеста для удаленного COM

Согласно подтвержденному ответу, RegFree COM поддерживает только регистрацию локальных экземпляров через DLL. Для DCOM, который используется в вашем случае, нет возможности использовать RegFree COM. Однако, если вы хотите избежать сложностей с регистрацией DCOM, рекомендуется перейти на другие стандартные подходы, такие как REST-сервисы, которые могут быть реализованы через интерфейсы, практически идентичные вашим текущим COM-интерфейсам.

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

Рассмотрите возможность использования SOA-подхода через REST/JSON, например, с помощью фреймворка mORMot, который поддерживает режим sicClientDriven для эмуляции DCOM-объектов.

Заключение

Для решения проблемы глобальной регистрации TLB-файлов в приложениях Delphi, вы можете использовать подход с созданием манифеста, который позволит вашему приложению работать с TLB без их глобальной регистрации. Это может потребовать от вас использования специализированных инструментов или пересмотра архитектуры вашего приложения в сторону более современных подходов, таких как REST-сервисы.

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

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

Описание контекста: В статье рассматривается проблема глобальной регистрации TLB-файлов в приложениях Delphi и предлагается решение с использованием манифеста для обеспечения использования TLB без регистрации, что важно для предотвращения конфликтов при


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

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




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


:: Главная :: COM и DCOM ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2024-12-27 01:59:11/0.0035240650177002/0