Visual Studio имеет много встроенной поддержки для импорта библиотек типов в ваш проект C ++ и использования определенных таким образом объектов. Например, вы можете использовать директиву #import
:
#import "CANoe.tlb"
Это импортирует библиотеку типов и преобразует ее в заголовочные файлы и файлы реализации - также это приведет к тому, что файлы реализации будут скомпонованы с вашим проектом, а файлы заголовков включены, так что тут много волшебства .
Затем вы получаете множество typedef для умных оболочек указателей для типов и объектов, определенных в библиотеке типов. Например, если существует CoClass с именем Application
, который реализует интерфейс IApplication
, вы можете сделать это:
ApplicationPtr app(__uuidof(Application));
Это приведет к тому, что во время выполнения будет создано приложение coclass и привязано к переменной app
, и вы можете вызвать его следующим образом:
app->DoSomeCoolStuff();
Обработка ошибок выполняется путем проверки результата COM-вызовов и выдачи соответствующего исключения _com_error по мере необходимости, что подразумевает, что вам нужно безопасно написать исключение.