Похоже, вы не понимаете (или не объясняете) отношения между вашей программой, библиотекой и идентификаторами GUID.
Как я создать новый GUID и
1) GUID это просто 128-битное случайное число. Таким образом, вы можете «создать новый GUID», просто отредактировав свою шестнадцатеричную строку. Или вы можете нажать Ctrl + Shift + G в исходном редакторе Delphi в режиме разработки. В режиме исполнения вы можете использовать функцию CreateGUID
SysUtils
.
Но я не думаю, что создание нового GUID будет вам никакой пользы. Во всяком случае, это должно означать явно объявленную несовместимость со старыми идентификаторами GUID (следовательно, несовместимость с библиотекой VOIP)
из нового каталога.
2) Почему, по вашему мнению, ваша библиотека VoIP организована как набор элементов управления ActiveX? Просто потому, что там есть GUID? Не любой текстовый файл с GUID внутри был бы ActiveX.
ActiveX - это специально организованные серверы Windows, зарегистрированные в реестре, чтобы любая программа могла их вызывать. Иногда вы можете зарегистрировать их после факта, если установщик потерпел неудачу.
Таким образом, вы должны прочитать инструкции для вашей библиотеки, являются ли они ActiveX или нет, и если они делают, как зарегистрировать их в ОС Windows (должно быть сделанный установщиком библиотеки)
Если установщик не предусматривает его, то вы не можете быть уверены, что библиотека может работать с другое место. Программе требуется не только ваша программа, но и сама библиотека может нуждаться в соединении с другими ее частями.
имеют доступ к программе активного х управляет
3) Если ваша библиотека действительно соответствует спецификациям ActiveX и если он был правильно установлен (зарегистрирован), то вы можете просто импортировать их в среде Delphi и капли их на форму, как вы бросаете таблицы и диалоги.
4) если вы не хотите, чтобы бросить свой компонент VoIP на форму, то вы можете попробовать создать его во время выполнения с CoCreateInstance
. Но сначала вам нужно прочитать учебник о Microsoft COM для начинающих. Вы можете пропустить некоторые продвинутые концепции, но вы должны понимать самые основные вещи, например, как интерфейсы схожи и отличаются от классов, как управляется их жизнь, как среда выполнения COM и инициализируется для вашей программы и так далее.
5) вы также можете попытаться обойти надлежащие способы Windows по обнаружению и загрузке сервера и попытаться сделать это самостоятельно, используя процедуры DllGetClassObject
в соответствующих DLL. Если библиотека разрешительная, она будет работать. Но если он полагается на сервисы, предоставляемые Windows, которые имеют потенциал для всех видов сбоев и неудовлетворенных ожиданий.
Если мне не изменяет память, вы можете найти примеры такого подхода в начале HTML-справки единиц для Дельфи. Справка Microsoft HTML содержит как late binding
с использованием реестра CoCreateInstance и среды выполнения ActiveX, либо early binding
в направлении htmlhlp.ocx
, рассматриваемых как DLL. Ранние версии API справки HTML для Delphi предоставлены для обоих вариантов. Но я могу ошибаться.
Спасибо, много человек :) –