背景:我们有一个用C#编写的COM对象。我们正在与另一家使用VB6编写代码的公司合作。我们需要发送VB6代码来创建和调用COM对象中的对象/方法。如何在VB6中的COM .tlb文件中引用对象和方法?
我使用Microsoft提供的RegAsm.exe从C#COM DLL文件创建了一个.tlb文件。然后我在VB6中添加了这个.tlb文件作为参考(Project-> References-> Browse ...)。它也在可用引用下进行检查。它没有注册为COM +。
我用这篇文章(C#/VB6 COM Example)作为所有这些的参考。
问题:的问题是,我引用我的VB6项目这个COM对象,但没有对象/方法/命名空间出现。我一定有一些简单的东西,但它是什么?我是否需要将此注册为COM +,还是其他问题?
编辑:关于项目
OK更多信息,所以我现在可以访问源代码,但显然我错了。它使用C++而不是C#。我们的C++ COM对象测试应用程序是用C#编写的,但COM对象本身是C++。
现在,我的新问题是如何与此C++ DLL接口。我的大学提到它“不是一个真正的COM对象”,那么除了将它作为参考添加它之外,还有其他方法可以与之交互吗?如果没有,那我该如何把它变成一个COM对象?
我需要访问和使用函数以及来自此DLL的对象。
你在C#项目中的类上放置了ComVisible属性吗?在班上的任何方法? – 2010-09-28 17:38:26
另一种检查方法:使用对象资源管理器工具打开.tlb,看看里面有什么 – Rup 2010-09-28 18:19:35
我是第二个Rup建议。查看在对象资源管理器工具下显示的任何类。如果不是的话,请按照凯特的评论,并确保每个COM都可见。 – 2010-09-29 18:15:09