Как я могу увидеть интерфейсы файла ocx?

Я хочу увидеть интерфейсы файла ".ocx". Нравится:

введите здесь описание изображения

Но для некоторых .ocx я вижу только 5 функций, например:

введите здесь описание изображения

Вопрос: Как я могу увидеть интерфейсы этих файлов ocx. Я пробовал это:

A.
а) Я хочу зарегистрировать его и посмотреть в визуальной студии. Но когда я его регистрирую, появляется ошибка "LoadLibrary(path:\filename.ocx) failed". Нравится:

введите здесь описание изображения

б) Затем я использовал «Dependency Walker», открыл ocx, не нашел файловых зависимостей без файлов DLL. введите здесь описание изображения

в) Как я могу его зарегистрировать?

B. Я использую "Dll ​​Export Viewer" и теперь вижу имя функции, но не могу получить ее параметры. Как я могу получить параметры функции?


person Sid Zhang    schedule 16.03.2011    source источник
comment
OCX принадлежит к семейству COM, поэтому интерфейсы и методы не экспортируются так же, как обычные .DLL. Вы не найдете их в таблице «Экспорт». Обратитесь к ответу Мариуса, а также к предложению Дэвида Хеффернана использовать #import   -  person MickyD    schedule 25.09.2015


Ответы (4)


Вы пробовали средство просмотра объектов OLE/COM? http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5233b70d-d9b2-4cb5-aeb6-45664be858b6&displaylang=en

person Marius Bancila    schedule 16.03.2011
comment
да, я перетаскиваю файл ocx в OLE Obj Viewer и не понимаю смысла сообщения. И я использую другой инструмент Dll Export Viewer, и теперь я вижу имя функции, но не могу получить информацию о параметрах. - person Sid Zhang; 16.03.2011
comment
@SidZhang Вы не можете использовать инструменты просмотра DLL Export с COM/OCX. Вам необходимо использовать методы COM, такие как библиотеки типов. - person MickyD; 25.09.2015

Импортируйте библиотеку типов с помощью средства импорта библиотеки типов.

Поскольку вы используете C++, проще всего это сделать с помощью #import.

В этой статье Code Project приведены пошаговые инструкции.

person David Heffernan    schedule 16.03.2011

Интерфейс описан в библиотеке типов (TLB). Ваша DLL (OCX — это DLL) должна содержать TLB в ресурсе TypeLibrary. Вы можете извлечь этот TLB и получить описание интерфейса. Эту работу также должен выполнять OLE View.

Если ваша DLL не содержит TLB и файл TLB не предоставлен, вы не получите описание интерфейса.

Изменить. Такие инструменты, как «Средство просмотра экспорта DLL», показывали меньше информации, чем представление OLE. Стоит использовать инструменты, предоставляемые Microsoft.

Когда у вас есть украшенные имена на снимке экрана ваших файлов, вы получаете сигнатуры функций с помощью «Microsoft (R) C++ Name Undecorator» (undname.exe)

person harper    schedule 16.03.2011
comment
Я использую другой инструмент Dll Export Viewer, и теперь я вижу имя функции, но не могу получить параметр. Мне нужна информация о параметрах сейчас! - person Sid Zhang; 16.03.2011
comment
Я попробовал DLL Export Viewer с одним из моих OCX. Он показал мне только имена функций, без параметров. При проверке того же OCX с помощью OLE View я получил полные сигнатуры функций. Стоит попробовать OLE View. - person harper; 16.03.2011

Давным-давно я использовал этот инструмент под названием XRay: X- Лучевое зрение. Он был довольно прост в использовании и до сих пор работает в Windows 7. Но, как и другие инструменты, он требует DLL/OCX для встраивания библиотеки типов, или вам нужно найти соответствующую.

person Simon Mourier    schedule 16.03.2011