Автоматизация COM с помощью tlb файл

Используйте строковый конструктор, который принимает chararray в качестве аргумента, начальную позицию и длину массива. Синтаксис приведен ниже:

string charToString = new string(CharArray, 0, CharArray.Count());
5
задан VividD 25 November 2014 в 17:05
поделиться

3 ответа

Visual studio имеет много встроенной поддержки для импорта библиотек типов в ваш проект C ++ и использования определенных таким образом объектов. Например, вы можете использовать директиву #import :

#import "CANoe.tlb"

Это импортирует библиотеку типов и преобразует ее в файлы заголовков и файлы реализации - также это приведет к созданию файлов реализации с вашим проектом. и заголовочные файлы, которые должны быть включены, так что это уже много волшебства.

Затем вы получаете множество определений типов для оболочек интеллектуальных указателей для типов и объектов, определенных в библиотеке типов. Например, если существует CoClass с именем Application , который реализует интерфейс IApplication , вы можете сделать следующее:

ApplicationPtr app(__uuidof(Application));

Это вызовет во время выполнения,

9
ответ дан 13 December 2019 в 22:14
поделиться

Используйте директиву import для импорта файла .tlb - это даст вам C ++ эквивалент интерфейсов, предоставляемых компонентом COM.

Вам также потребуется зарегистрируйте компонент COM в реестре (запустите regsvr32 для файла .dll компонента). После этого вы можете вызвать CoCreateInstance () (или _com_ptr_t :: CreateInstance (), как обычно удобнее), чтобы создать экземпляр класса, реализующего интерфейс. Затем вы можете вызывать методы интерфейса - он будет работать почти так же, как если бы это был простой интерфейс и класс C ++.

1
ответ дан 13 December 2019 в 22:14
поделиться

Более простой способ - включить оба проекта .h и _i.c в ваш .cpp файл с помощью операторов #include .

Поскольку вам не дали предоставляется dll и только tlb, вы можете зарегистрировать tlb с помощью regtlibv12.exe, который является частью Visual Studio (это версия VS2005). После регистрации tlb в реестр будут внесены соответствующие записи, после чего вы сможете использовать функциональные возможности библиотеки COM по мере необходимости.

РЕДАКТИРОВАТЬ: Кстати, вам в любом случае потребуется DLL для успешного создания экземпляра компонента COM.

Чтобы создать интерфейс указатель, один из более безопасных способов - использовать CComPTR, например:


CComPtr myPtr;
myPtr.CoCreateInstance(__uuidof("ClassNamehere"));
myPtr->Method(....);


0
ответ дан 13 December 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: