Почему мой вызов приложения VB6 ActiveX DLL из приложения C # завершается с ошибкой «Такой интерфейс не поддерживается»? - PullRequest
2 голосов
/ 08 октября 2011

У меня есть активная библиотека VB6, которую я пытаюсь вызвать из C #.

Я конвертировал его с помощью tblimp и импортировал в VS 2010.

Затем я создаю его экземпляр, используя:

AppWebActiveX.Users appWebActiveX = new appWebActiveX.Users();

Когда я смотрю в браузере объектов, есть интерфейс Users и класс UsersClass.

Тогда я звоню:

bool isExistingUser = appWebActiveX.IsExistingUser("cat");

bool IsExisting(string) является допустимым методом, согласно браузеру объектов.

Однако, это возвращает:

Невозможно привести объект COM типа «AppWebActiveX.UsersClass» к типу интерфейса «AppWebActiveX._Users». ... Такой интерфейс не поддерживается ...

Последний вызов стека относится к System.StubHelpers.StubHelpers.GetCOMIPFromRCW.

Я запускаю приложение на Windows Server 2003 Standard Edition (x86 - 32bit), и это 32-битная DLL. Я звоню из консольного приложения C #.

Любой совет?

1 Ответ

1 голос
/ 11 октября 2011

Оказывается, я пропустил атрибут [STAThread] в методе main.

...