Почему возникла исключительная ситуация при получении адреса функции COM? - PullRequest
3 голосов
/ 13 мая 2010

Я получаю адрес функции COM, загружая библиотеку типов (TLB) и перебирая типы, используя ITypeLib и ITypeInfo. После вызова функции AddressOfMember в ITypeInfo я столкнулся со следующим исключением:

System.Runtime.InteropServices.COMException (0x800288BD): неправильный тип модуля для операции. (Исключение из HRESULT: 0x800288BD (TYPE_E_BADMODULEKIND)) в System.Runtime.InteropServices.ComTypes.ITypeInfo.AddressOfMember (Int32 memid, INVOKEKIND invKind, IntPtr & ppv).

Как мне избавиться от этого исключения?

1 Ответ

1 голос
/ 15 февраля 2011

Я не уверен, раньше такого не делали, но вы говорите, что загружаете файл tlb? Возможно, для addressofmember вам нужно загрузить dll, содержащую объект com, я подумал, что файл tlb - это просто описание интерфейсов, и, следовательно, addressofmember не будет загружать какой-либо код.

...