我在C#中用VS2012编写了一个DLL:
namespace COMTest
{
public class MyClass
{
public int Fun()
{
return 3;
}
}
}然后我设置了"Make Visible=True“,在构建页面中,我设置了"Register for intercrop”。然后创建一个新的VB6项目,添加对生成的dll文件的引用,但……失败。后来尝试了tlb文件成功,但在说“a”之后没有intellisense。(没有“乐趣”提示)
Dim a As MyClass
Set a = New MyClass
MsgBox (a.Fun())所以我的问题是:
1)为什么我必须引用tlb文件而不是dll文件? 2)为什么没有intellisense?
发布于 2014-01-23 07:25:07
试着在以下地方放置一个支票标记:
Tools->Options->Editor->Auto List Members如果这没有帮助,那么要解决这个问题,请使用要在TLB中公开的方法和属性来定义一个公共接口,然后在类中实现该接口。另外,将ClassInterface (ClassInterfaceType.None)属性添加到类中。在开发组件时,可以使用此方法来避免使用ComVisible(False)属性。
您可以获得更多详细信息,这里
https://stackoverflow.com/questions/21300299
复制相似问题