У меня есть старый OLB
файл, который на самом деле является библиотекой типов (вероятно, формат файла MSFT).Его сигнатура начинается с 0x4D, 0x53, 0x46, 0x54, 0x02, 0x00, 0x01, 0x00
, который является файлом библиотеки типов OLE Type Libary 2 или C ++, как я узнал до сих пор.
Я пытаюсь загрузить этот файл с помощью метода LoadTypeLibEx
в приложении C#
(простой просмотрщик библиотек, который может исследовать библиотеки типов без регистрации), чтобы получить объект ITypLib
, который я могуиспользуется для отображения всех типов и членов, определенных библиотекой, но вызов функции завершается с ошибкой:
System.Runtime.InteropServices.COMException Ошибка загрузки библиотеки типов / DLL.(Исключение из HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))
Загрузка библиотек типов из других файлов библиотек, имеющих сигнатуры, такие как 0x4D, 0x5A
или 0x53, 0x4C, 0x54, 0x47
, работает нормально.Итак, я хотел бы знать, может ли LoadTypeLibEx
читать файлы MSFT
, или что нужно сделать, чтобы извлечь библиотеку типов, которая, кажется, встроена в нее.