2013-04-12 2 views
-1

Я создал библиотеку классов VS 2010. Пометили сборку для Com Visibility. Подписал сборку сильным ключом. Создал мой класс, чтобы мой метод точки входа был доступен.Класс COMVisible в VS 2010 сборке все еще не отображается через com

Библиотека отлично работает из тестового проекта на C#.

Я Regasm библиотеку классов в GAC, с помощью: C: \ Windows \ microsoft.net \ Framework \ v4.0.30319 \ Regasm testdll.dll/TLB: testdll.tlb/кодовая

Включить файл TLB как ссылка в моем проекте VB6. Я нахожу его через «просмотр» ресурсов, поэтому его там.

Когда я пытаюсь создать экземпляр класса ... его пустой. публичный метод, который должен быть доступен через открытый класс, не отображается.

Dim objTest as testdll.testclass 
set objTest = new testdll.testclass 

objTest.testmethod <--- this 'testmethod' doesn't display in intellisense... nothing does. 

Кроме того я пытался называть «testdll.testclass» через CreateObject, я получаю ошибку «компонент ActiveX не может создать объект»

Теперь у меня есть другие проекты, которые я сделал COM видимость для и я попытался сравнить разницу, но я не вижу. Я не понимаю, почему он не работает.

Любые подсказки ??? tx очень много.

+0

Вы regsvr32 в .TLB? Я тоже не получаю intellisense, но я все еще могу использовать этот тип. – ken

+0

hmmm ... мне нужно добавить интерфейс? Я не делал этого в моих других проектах, и он работает ... Я читаю другую статью, в которой говорится об этом. – user1161137

+0

вы не можете regsvr32 a tlb ... это не то, что делает regasm? – user1161137

ответ

1

Просто используйте интерфейс ... который вы определяете или используете [ClassInterface (ClassInterfaceType.AutoDual)] есть комментарии в Интернете, которые вы можете найти, которые указывают на то, что вы не используете автодомен, но если вы контролируете полное использование своего библиотеки, это похоже на «хорошо».

Я пробовал всевозможные способы имитации/понимания того, почему моему одному проекту не нужен интерфейс, который должен быть видимым проектом vb, без успеха. я изначально думал, возможно, возможно, что это потому, что в этом проекте реализован IDisposable Interface (единственный интерфейс, используемый в проектах C#, который является видимым), но это не стало причиной. В любом случае, я не хочу тратить время на это. спасибо за ответы.

ссылку обеспечивает достаточную информацию по теме: http://anturcynhyrfus.blogspot.com/2011/03/creating-com-visible-c-component.html

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

  • Нет связанных вопросов^_^