Форум программистов, компьютерный форум CyberForum.ru

Подключиться к COM-объекту, вызвать функции и прочитать таблицы - C++

Восстановить пароль Регистрация
 
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 131
08.02.2014, 09:03     Подключиться к COM-объекту, вызвать функции и прочитать таблицы #1
Подскажите пожалуйста.
Мне нужно подключиться к COM-объекту, вызвать функции и прочитать таблицы.
Есть COM-объект - AmiSharp.
http://www.bot4sale.ru/faq/amisharp-...-amisharp.html
Нужно реализовать чтение таблиц из этого объекта.
У меня все это реализовано средствами Amibroker, хочу реализовать на С++.

Ссылка на статью и пример если можно.

С уважением, Александр.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 09:03     Подключиться к COM-объекту, вызвать функции и прочитать таблицы
Посмотрите здесь:

C++ Как из обыной функции вызвать функции член класса?
C++ Как вызвать из 1 функции параметры другой?
C++ можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это реализовать?
Как вызвать массив из функции? с++ C++
C++ Как вызвать функцию из функции main?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14188 / 6203 / 984
Регистрация: 02.05.2013
Сообщений: 10,331
Завершенные тесты: 1
08.02.2014, 19:59     Подключиться к COM-объекту, вызвать функции и прочитать таблицы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если COM-объект поддерживает автоматизацию, - а данном случае, скорее всего,
так и есть, - то у него должна быть библиотека типов (.tlb-файл).
Любой COM-совместимый компилятор должен уметь из этой библиотеки генерировать
файлы .h и .c с описанием соответствующих COM-интерфейсов. Например, в Visual C++
для этого существует директива import:

The #import Directive
http://msdn.microsoft.com/en-us/libr...=vs.90%29.aspx

К вопросу о том, где искать библиотеку типов.
Вам нужно найти в реестре то место, где зарегистрирован COM-объект.
Искать можно в HKCR\AppID по friendly-имени компонента (типа SAPI.SpVoice) и в
HKCR\CLSID (по GUID-у, если он известен). В ключе HKCR\CLSID\<guid компонента>
должа быть ссылка на библиотеку типов, т.е. GUID. Этот GUID нужно искать в
HKCR\TypeLib, и вот там должен быть строковой параметр REG_SZ, в котором
будет указан путь к библиотеке типов. Она, кстати, может (и часто так и бывает)
"вшита" в файл с самим COM-объектом (dll или exe).

Ну а дальше подключаете .h и .c файлы к своему проекту и там вызываете
CoInitializeEx -> CoCreateInstance и далее работаете с методами объекта.

Добавлено через 10 минут
То есть, метод поиска примерно такой:

Код
HKCR\SomeCompany.SomeComponent\
    CLSID\
	(default value = {SomeGUID} ; Здесь находим GUID компонента.

HKCR\CLSID\{SomeGUID}\
    TypeLib\
	(default value = {LibGUID} ; Здесь находим GUID библиотеки типов.

HKCR\TypeLib\{LibGUID}\
    1.0\ ; (или другой номер версии)
        0\
            win32\
                (default value = путь к библиотеке типов).
Добавлю, что если компонент 32-битный, а Windows 64-битная, то
сведения о его регистрации нужно искать в WOW64-ключах.
То есть, не HKCR\CLSID, например, а HKCR\Wow6432Node\CLSID.
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 131
08.02.2014, 20:02  [ТС]     Подключиться к COM-объекту, вызвать функции и прочитать таблицы #3
Спасибо)
Как всегда, у Вас хорошие ответы.
У меня только exe файл.
Автор программы утверждает, что этого достаточно что бы подключиться и пользоваться))
Буду экспериментировать.
Спасибо.
Убежденный
Системный программист
 Аватар для Убежденный
14188 / 6203 / 984
Регистрация: 02.05.2013
Сообщений: 10,331
Завершенные тесты: 1
08.02.2014, 20:28     Подключиться к COM-объекту, вызвать функции и прочитать таблицы #4
Цитата Сообщение от AlexLan73 Посмотреть сообщение
У меня только exe файл.
exe-файл, судя по описанию на сайте, запускает регистрацию COM-объекта.
Ну а что это за объект, где расположени физически и есть ли у него библиотека типов -
неизвестно, для этого нужно исследовать сам exe, либо искать в поисковиках
какую-то информацию.
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 131
08.02.2014, 20:35  [ТС]     Подключиться к COM-объекту, вызвать функции и прочитать таблицы #5
Спасибо.
Получится напишу
Yandex
Объявления
08.02.2014, 20:35     Подключиться к COM-объекту, вызвать функции и прочитать таблицы
Ответ Создать тему
Опции темы

Текущее время: 17:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru