Получить функции / объекты импортированных .tlb - PullRequest
2 голосов
/ 06 декабря 2011

У меня есть программа, которая поставляется с файлом .tlb для доступа к некоторым функциям / объектам (чтение переменных и т. Д.) С помощью моей собственной программы на C ++.Я выполнил поиск и импортировал файл .tlb с:

#import "MyLib.tlb" named_guids no_namespace

. Я также могу импортировать его, используя libid из oleview.exe (ProgId не работает).

Даже если яПолучив несколько предупреждений (как показано ниже), моя программа все еще работает:

C4278 ['TextOut', 'CreateEvent', 'DeleteFile'] is already a macro; use the 'rename' qualifier

Но .. как я могу получить доступ к функциям / объектам сейчас?Извините, я новичок, так что наберитесь терпения.Работает ли как-то с IDispatch?Нужно ли импортировать еще несколько DLL или мне нужно больше директив #include?

Я использую Visual C ++ 2008 Express.

-
Редактировать: Хорошо, извините, я ужеУ меня есть доступ к заголовку объектов (я вижу «Приложение» в автозаполнении), но я не знаю, как получить объекты.

Обзор объектов

ИЯ думаю, что нашел соответствующую статью в Википедии .

1 Ответ

2 голосов
/ 06 декабря 2011

Импорт библиотеки типов дает вам описание всех интерфейсов и идентификаторов этой библиотеки. Обычно вы не должны включать какие-либо заголовочные файлы. Вы должны просто нормально создать эти интерфейсы, используя смарт-указатель COM, и вызвать их методы:

CComPtr pInterface;
pInterface.CoCreateInstance(__uuidof("ClassNameFromTLB"));
pInterface->CallMethod();
...