Как загрузить файл библиотеки типов в формате MSFT, используя LoadTypeLibEx - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть старый 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, или что нужно сделать, чтобы извлечь библиотеку типов, которая, кажется, встроена в нее.

...