VS 2010程序集中的COMVisible类仍然无法通过com看到

时间:2013-04-12 15:10:33

标签: visual-studio-2010 vb6 comvisible

我创建了一个VS 2010类库。为Com Visibility标记了程序集。用强键签署了大会。创建了我的课程,我的入门点方法可用。

该库在C#中的测试项目中运行良好。

我通过以下方式将类库归为gac: c:\ windows \ microsoft.net \ framework \ v4.0.30319 \ regasm testdll.dll / tlb:testdll.tlb / codebase

在我的VB6项目中包含tlb文件作为参考。我通过资源'浏览'找到它所以它在那里。

当我尝试实例化类时......它是空的。应该通过公共类提供的公共方法不会显示。

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

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

另外我试过通过CreateObject调用'testdll.testclass',我得到错误“ActiveX组件无法创建对象”

现在我有其他项目我已经完成了COM的可见性,我尝试比较差异,但我没有看到任何。我不明白为什么它不起作用。

任何线索??? tx非常。

1 个答案:

答案 0 :(得分:1)

只需使用一个接口...您定义的接口或使用[ClassInterface(ClassInterfaceType.AutoDual)] 你可以在网上发表评论,表明不使用自动模式,但如果你控制了你的库的完整用法,那么这似乎是一种“好”的方式。

我尝试了各种方法来模拟/理解为什么我的一个项目不需要vb项目可见的界面,但没有成功。我原本以为可能是因为该项目实现了一个IDisposable接口(在C#项目中使用的唯一接口是可见的),但事实并非如此。无论如何,我不想浪费别人的时间。谢谢你的回复。

此链接提供有关该主题的充足信息: http://anturcynhyrfus.blogspot.com/2011/03/creating-com-visible-c-component.html