|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Использование импортированного ActiveX компонента в Delphi
Доброго Дня! Просветите пожалуйста, что я упустил из виду, полный профан в этом ActiveX,
да и небыло необходимости с ним связываться.. Вообщем, есть некая библиотека "RemotePhoneServiceCOM.TLB", которую я успешно импортировал посредством Component > Import Component > Import Type Library. Делать Add в этом окошке не пришлось, нашел ее (RemotePhoneServiceCOM.tlb) в таблице, в 1-ом поле Description, (? то есть по всей видимости она как-бы уже зарегистрирована ?) Далее выбрал: Pallete Page: ActiveX, Unit Dir Name: оставил по умолч. в "..\Documents\RAD Studio\12.0\Imports\", чекнул внизу флажок Generate Component Wrappers. На след. и последней странице выбрал Install To New Package. Все 3 компоненты успешно добавились на вкладку ActiveX, о чем IDE и сообщила. Теперь бросив на форму любой из них (и установив предварительно свойство для них в испекторе AutoConnect=True) и запустив, тут-же получаю: "Exception EOLESysError. Класс не зарегистрирован". Сама библиотека предоставляет API для уже установленной и запущенной в windows программе, некий интерфейс для всех вх. исх. вызовов с мобильного телефона, подключенного по bluetooth или wi-fi. Программа называется CallCenter, и довольно удобна, жаль только платная) В любезно предоставленном подкаталоге SDK для виндовс-клиента к сожалению нет исходников под Delphi, только CSharp .NET Sample и VBA, но зато в корне имеется та самая RemotePhoneServiceCOM.TLB p.s. Также в SDK есть библиотека RemotePhoneService.dll, но она, скорее всего, си-шная, т.к. подключить ее обычным образом, ни статически, ни динамически не получается.. Может все-же есть какой хитрый маневр для нормальной загрузки под Delphi таких библиотек? Или это в принципе нереально? Последний раз редактировалось Xalexo, 08.08.2019 в 16:36. |
#2
|
|||
|
|||
Зарегистрируй dll
regsrv32 RemotePhoneService.dll TLB файл просто содержит описание интерфейсов. А вот их реализация как раз и лежит в той библиотеке. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Xalexo (09.08.2019)
|
#3
|
||||
|
||||
Сорри, давненько не практиковался в программировании. Спасибо, что откликнулись.
Не регится, собака)) Жалуется: --------------------------- RegSvr32 --------------------------- Модуль "RemotePhoneService.dll" загружен, но точка входа DllRegisterServer не найдена. Проверьте, что "RemotePhoneService.dll" является правильным файлом DLL или OCX и повторите попытку. --------------------------- ОК --------------------------- Может есть какой-то хитрый пробный вариантик подгрузить ее через Delphi? Или в связке с *.TLB библиотекой (что я уже импортировал в виде компонентов) — использование regsvr32 RemotePhoneService.dll непременное условие? Там дерективу поменять с stdcall на что-то еще.. И можно-ли как-то быстро и наверняка узнать сишная она или нет? |
#4
|
|||
|
|||
Хреново.
Скорее всего это означает, что это просто интерфейсная библиотека, а не имплементация com-объектов. А есть что-нить типа INCLUDE в SDK? Там должны быть соотв. *.h или *.hpp файлы. |
#5
|
||||
|
||||
Нет, но зато есть исходник на CSharp .NET Sample, со всеми сопуствующими *.csproj, *.cs файлами,
а также рабочий Word VBA скрипт, проверил.. Жаль не волоку ни в VBA, ни в СиШарпNet )) Может Вам на досуге удасться адаптировать представленные исходники под Delphi/ Действительно удобная программа, можно в принципе не отвлекаться на трубу (весь интерфейс вынесен на раб.стол), достаточно подключить андроид через bluetooth например. На 4PDA есть вылеченная версия(apk-клиент для андроид и сервер CallCenter.msi). Сайт: https://www.justremotephone.com/#sdk И еще в папке SDK\bin (приложил на всякий случай ниже, хотя он есть и в каталоге установленного CallCenter.exe), там где эта RemotePhoneService.dll есть также RemotePhoneService.xml, со след. содрежанием, незнаю насколько это полезная информация: Код:
<?xml version="1.0" ?> - <doc> - <assembly> <name>RemotePhoneService</name> </assembly> - <members> - <member name="T:JustRemotePhone.RemotePhoneService.ApplicationStateChangedDelegate"> - <summary> Delegate for the <see cref="E:JustRemotePhone.RemotePhoneService.Application.ApplicationStateChanged" /> -event. </summary> <param name="newState">The new state.</param> <param name="oldState">The old state.</param> </member> - <member name="T:JustRemotePhone.RemotePhoneService.WindowActivationModesChangedDelegate"> - <summary> Delegate for events fired for changes of the window activation modes. (see <see cref="E:JustRemotePhone.RemotePhoneService.Application.RequestWindowActivationModesChanged" /> and <see cref="E:JustRemotePhone.RemotePhoneService.Application.ActiveWindowActivationModesChanged" /> ) </summary> <param name="newModes">The new modes.</param> <param name="oldModes">The old modes.</param> ............. |
#6
|
|||
|
|||
Т.е. VBA скрипт работает?
Тогда давай сюда пример... |