Как импортировать tlb и пространство имен в c ++ во время выполнения, когда выполняется какое-то условие? - PullRequest
2 голосов
/ 10 июля 2009

Обычно мы импортируем файл tlb при запуске программы, например

#include < stdio.h >
#import " sql.tlb "

Но мне нужно импортировать файл tlb, когда в середине программы выполняется определенное условие

как я могу это сделать. для загрузки dll есть LoadLibrary(), но для загрузки tlb я могу использовать LoadLibrary().

Поскольку tlb генерируется с помощью .dll?

1 Ответ

8 голосов
/ 10 июля 2009

Вы можете загрузить библиотеку типов во время выполнения, используя LoadTypeLib .

ITypeLib *ptlib;
LoadTypeLib("sql.tlb", &ptlib);

То, что вы делаете с ptlib, отчасти поднимается в воздух, поскольку вы на самом деле не говорите, что пытаетесь с ним сделать.

ptlib - это объект, поддерживающий интерфейс ITypeLib . У него есть методы, которые вы можете вызывать для перечисления и итерации типов в библиотеке типов. Обычно вы используете его в сочетании с другими интерфейсами, такими как ITypeInfo и т. Д.

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

Header                    oaidl.h, oaidl.idl
Library                   oleaut32.lib, uuid.lib
Windows Embedded CE       Windows CE 2.0 and later
Windows Mobile            Windows Mobile Version 5.0 and later
...