Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Технологии
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.08.2019, 16:24
Аватар для Xalexo
Xalexo Xalexo вне форума
Прохожий
 
Регистрация: 04.02.2010
Адрес: Вселенная,Млечный путь,3 планета от Солнца и т.д.
Сообщения: 40
Версия Delphi: Delphi XE3-5
Репутация: 10
Сообщение Использование импортированного 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  
Старый 08.08.2019, 22:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,049
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Зарегистрируй dll
regsrv32 RemotePhoneService.dll
TLB файл просто содержит описание интерфейсов. А вот их реализация как раз и лежит в той библиотеке.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Xalexo (09.08.2019)
  #3  
Старый 09.08.2019, 12:27
Аватар для Xalexo
Xalexo Xalexo вне форума
Прохожий
 
Регистрация: 04.02.2010
Адрес: Вселенная,Млечный путь,3 планета от Солнца и т.д.
Сообщения: 40
Версия Delphi: Delphi XE3-5
Репутация: 10
По умолчанию

Сорри, давненько не практиковался в программировании. Спасибо, что откликнулись.
Не регится, собака)) Жалуется:
---------------------------
RegSvr32
---------------------------
Модуль "RemotePhoneService.dll" загружен, но точка входа DllRegisterServer не найдена.

Проверьте, что "RemotePhoneService.dll" является правильным файлом DLL или OCX и повторите попытку.
---------------------------
ОК
---------------------------


Может есть какой-то хитрый пробный вариантик подгрузить ее через Delphi? Или в связке с *.TLB библиотекой (что я уже импортировал в виде компонентов) — использование regsvr32 RemotePhoneService.dll непременное условие?

Там дерективу поменять с stdcall на что-то еще..
И можно-ли как-то быстро и наверняка узнать сишная она или нет?
Ответить с цитированием
  #4  
Старый 09.08.2019, 19:48
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,049
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Хреново.
Скорее всего это означает, что это просто интерфейсная библиотека, а не имплементация com-объектов.
А есть что-нить типа INCLUDE в SDK? Там должны быть соотв. *.h или *.hpp файлы.
Ответить с цитированием
  #5  
Старый 09.08.2019, 20:55
Аватар для Xalexo
Xalexo Xalexo вне форума
Прохожий
 
Регистрация: 04.02.2010
Адрес: Вселенная,Млечный путь,3 планета от Солнца и т.д.
Сообщения: 40
Версия Delphi: Delphi XE3-5
Репутация: 10
По умолчанию

Нет, но зато есть исходник на 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  
Старый 09.08.2019, 23:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,049
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Т.е. VBA скрипт работает?
Тогда давай сюда пример...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter