我创建了一个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非常。
答案 0 :(得分:1)
只需使用一个接口...您定义的接口或使用[ClassInterface(ClassInterfaceType.AutoDual)] 你可以在网上发表评论,表明不使用自动模式,但如果你控制了你的库的完整用法,那么这似乎是一种“好”的方式。
我尝试了各种方法来模拟/理解为什么我的一个项目不需要vb项目可见的界面,但没有成功。我原本以为可能是因为该项目实现了一个IDisposable接口(在C#项目中使用的唯一接口是可见的),但事实并非如此。无论如何,我不想浪费别人的时间。谢谢你的回复。
此链接提供有关该主题的充足信息: http://anturcynhyrfus.blogspot.com/2011/03/creating-com-visible-c-component.html