2013-10-14 4 views
0

Мне нужен список методов и свойств, открытых COM-объектом. Я могу запоздать связать объект и использовать некоторые базовые методы, которые я нашел в фрагменте кода примера, но мне нужно узнать полный список методов и свойств объекта.Как получить список методов из связанного с последними COM-объекта

Подробнее:

Я пытаюсь вытащить данные из довольно старой системы, и я не в состоянии рано связывать любого из библиотек DLL.

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

Я уже пробовал использовать отражение без особого успеха.

ответ

4

Предполагая, что вам не нужно программно обращаться к информации, самый простой способ - просмотр объектов OLE-COM. Инструмент входит в состав Windows SDK.

После запуска загляните в узел библиотеки типов и найдите библиотеку типов компонента, который вы используете. Средство просмотра библиотеки типов покажет вам все интерфейсы отправки, определенные компонентом.

+0

У меня уже есть машина с Vb6/Visual studio 2005-2010 на нем. Также некоторые из dll имеют 16 бит, поэтому они не будут работать в Windows 7. – Jastill

+0

Я связан с Windows 7 SDK, потому что он проще всего найти, приложение OLE COM Viewer будет работать в более ранних версиях Windows (и включено в более ранние версии Windows версии Platform SDK) – William

1

Если вы не можете добавить DLL к VB6 в диалоговом окне «Ссылки», то нет библиотеки библиотеки типов, встроенной в DLL. Если вы можете загрузить DLL, вы сможете использовать F2 для вызова браузера объектов и просмотреть все свойства и методы компонента.

Кажется маловероятным, что вы не пробовали это. Таким образом, существует три возможности:

  1. Для компонента есть библиотека внешнего типа.
  2. У вас возникла ошибка при добавлении DLL в качестве ссылки, в которой, по существу, говорилось, что VB IDE не может найти библиотеку типов в компоненте.
  3. У вас возникла ошибка при добавлении DLL в качестве ссылки, например, «Не удалось загрузить DLL».

Только в случае 1. - проверьте наличие TLB или OLB-файла для этого компонента. Если у вас есть ошибка в 2. - тогда вам не повезло. Вам потребуется доступ к документации и/исходному коду. Если у вас есть ошибка в 3. - тогда, вероятно, есть зависимая библиотека, которая не была зарегистрирована. Попробуйте найти зависимый TLB или DLL и зарегистрируйте его.

+0

Я чувствую, что мне, к сожалению, не повезло. Я смог дать обоснованное предположение о нескольких именах методов, когда я связал объект позже. этого, однако, недостаточно, чтобы выполнить поставленную задачу. – Jastill

+0

Вы можете попробовать собрать все строки из исполняемого файла. Однако вам все равно придется выработать аргументы метода. Этот компонент продается как сторонний компонент? –

+0

15 лет назад он был «продан». Мы переходим через процесс обновления к новой системе. – Jastill

Смежные вопросы