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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 136
#1

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

08.02.2014, 09:03. Просмотров 694. Ответов 4
Метки нет (Все метки)

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

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

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

Как из обыной функции вызвать функции член класса? - C++
Требуется установить таймер. При компиляции выдаётся ошибка. Как ее решить? void handlук(int signo) { cTimer.run; } ...

можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это реализовать? - C++
можно ли в с++ вызвать переменную из одной функции в другую т.е. мы переменну задали в одной функции а использовали в другой... и как это...

Добавление данных в отчете, к объекту из таблицы ACCESS - MS Access
Добрый день. На моем предприятии, существует простая система печати этикеток, разработанная на Microsoft Access: Ничего сложного:...

Как прикрепить линию к объекту и провести к другому объекту ? - Unity, Unity3D
Привет. Вот вариант с помощью метода Gizmos.DrawLine. Как видите линия проходит с центра одного объекта в центр другого. Но задумка...

Обращение из функции к объекту, расположенному на форме - C++ Builder
Здравствуйте, коллеги! Подскажите пожалуйста, как можно обратиться к объекту, лежащему на форме из другой функции? Пример: На форме...

Доступ к объявленному объекту внутри сторонней функции - PHP
Примерно такой код $guo=new SQLite3($guo); function add(){ ............ $guo->exec('.........'); } ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15547 / 7055 / 1114
Регистрация: 02.05.2013
Сообщений: 11,467
Завершенные тесты: 1
08.02.2014, 19:59 #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.
1
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 136
08.02.2014, 20:02  [ТС] #3
Спасибо)
Как всегда, у Вас хорошие ответы.
У меня только exe файл.
Автор программы утверждает, что этого достаточно что бы подключиться и пользоваться))
Буду экспериментировать.
Спасибо.
0
Убежденный
Системный программист
Эксперт С++
15547 / 7055 / 1114
Регистрация: 02.05.2013
Сообщений: 11,467
Завершенные тесты: 1
08.02.2014, 20:28 #4
Цитата Сообщение от AlexLan73 Посмотреть сообщение
У меня только exe файл.
exe-файл, судя по описанию на сайте, запускает регистрацию COM-объекта.
Ну а что это за объект, где расположени физически и есть ли у него библиотека типов -
неизвестно, для этого нужно исследовать сам exe, либо искать в поисковиках
какую-то информацию.
1
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 136
08.02.2014, 20:35  [ТС] #5
Спасибо.
Получится напишу
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2014, 20:35
Привет! Вот еще темы с ответами:

Объекту типа делегата не присваивается адрес функции - C#
почему объекту типа делегата: string del(object obj); не присваивается адрес функции string f(double)? Object ведь любой тип схавать...

Подключиться к БД, и из определенной таблицы вывести данные в определенные TextBox - C#
Нужно при каком либо событии, допустим нажатии на кнопку. Подключиться к БД, и из определенной таблицы вывести данные в определенные...

Как прочитать колонку из таблицы - C++ Qt
Добрый день, есть таблица QtableView в нее заносится данные из БД. мне нужно прочитать 2ю колонку из нее. Порылся в инете, как-то не вкурил...

Прочитать в текстбокс из таблицы с условием - C# MVC
Есть две таблицы - type_organization и cost_service. Нужно прочитать стоимость услуг из cost_service исходя из type_organization, связь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.02.2014, 20:35
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru