Полагаю, вы говорите о директиве importlib в файле IDL. Требуется библиотека типов, расширение имени файла .tlb. Это двоичный файл, созданный путем запуска midl.exe для файла .idl, который содержит определения .idl в компактной форме.
DLL не является библиотекой типов. Однако в COM Automation принято встраивать библиотеку типов для COM-сервера в качестве ресурса внутри DLL. Весьма удобно хранить вместе код сервера и определения его интерфейса. Вы можете легко увидеть это в Visual Studio, использовать File + Open + File и выбрать DLL. Вы можете выбрать c: \ windows \ system32 \ shell32.dll в качестве примера.
Имя типа ресурса неизменно «TYPELIB», откройте узел, чтобы увидеть идентификатор ресурса, неизменно «1». Вы можете дважды щелкнуть по нему, чтобы посмотреть содержимое, не очень интересное, поскольку это всего лишь шестнадцатеричный дамп. Вы узнаете строки, имена интерфейсов, коклассы и их члены.
Закройте это окно и щелкните правой кнопкой мыши «1», обратите внимание на пункт «Экспорт контекстного меню». Это позволяет вам записать файл на диск, назвать его чем-то .tlb. Теперь у вас будет точная копия .tlb, которая нравится директиве importlib ().
Эта .tlb может быть декомпилирована по очереди, чтобы заново сгенерировать оригинальный файл .idl. Запустите приглашение Visual Studio. Запустите oleview.exe, Файл + Открыть Typelib и выберите .tlb. Установите фокус на правой панели, введите Ctrl + A, Ctrl + C и вставьте его в текстовый редактор. Теперь вы вернули оригинальный .idl, вы можете просто использовать директиву import .
Это имеет 100% точность, только если исходный файл .idl был чистым COM Automation и не содержал cpp_quote.