Как включить библиотеки типов в проект Visual c ?

#visual-c #linker #activex #firebreath #typelib

#visual-c #компоновщик #activex #firebreath #typelib

Вопрос:

Я работаю над проектом FireBreath, который создает приложение-плагин, которое обертывает функции элемента управления ActiveX. У меня даже есть исходный код элемента управления ActiveX.

На основе примера, приведенного на странице примера FireBreath, я закодировал необходимый класс-оболочку для переноса активных элементов управления X.

Для вызова интерфейсов событий, классов и функций элемента управления activex из проекта firebreath программа, которую я загрузил со страницы примера firebreath, использует оператор, подобный этому, чтобы предоставить информацию о типе элементов управления activex проекту

 // Import the ActiveX control's typelib so we can easily call methods, etc.
// on the ActiveX control.
#import "PROGID:FBExampleCtl.xpcmdbutton" no_namespace, raw_interfaces_only$
  

Но когда я использую что-то подобное в своей программе, выдается сообщение об ошибке не удается найти библиотеку типов, включенную в заголовок.

Поэтому я не могу понять, как предоставить библиотеку типов элемента управления activex моему проекту, а также использовать методы и функции, определенные в библиотеке типов из моей программы.

ps: 1) Я также установил Oleview, чтобы проверить, доступна ли библиотека типов в системе. Из этого я также попробовал альтернативу, например

 #import "GUID of the typelibrary". But this also didnot work.
  

2) я также пытался

 #import "myrequireddll.dll"  
  

а также упомянул путь к dll в среде отладки. Но компилятор по-прежнему выдает ту же ошибку, не удается найти файл.

Комментарии:

1. Всегда предпочитайте использовать имя файла напрямую, а не надеяться, что компилятор сможет найти его через реестр. Укажите файл .tlb, если он у вас есть отдельно, или DLL, в которую он встроен.

2. @Hans Passant я тоже пробовал этот метод. Но, я думаю, это не сработало. Пожалуйста, проверьте второй пункт, который я добавил в конце вопроса

Ответ №1:

Вы можете импортировать файл TLB непосредственно в файл заголовка (.h), используя следующую директиву #IMPORT

#import "C:<PATH_TO_YOUR_TLB_FILE>.tlb" no_namespace, raw_interfaces_only

Ответ №2:

Ознакомьтесь с этим сообщением в моем блоге Настройка Visual Studio 2010 для программирования MASM32. В нем говорится о настройке для MASM32, однако показано, как добавлять сторонние библиотеки типов и включать файлы в ваш проект.