为什么VB6中没有intellisense?

时间:2014-01-23 05:43:01

标签: com vb6

我在VS2012中用C#写了一个DLL:

namespace COMTest
{
    public class MyClass
    {
        public int Fun()
        {
            return 3;
        }
    }
}

然后我设置“Make Assembly COM Visible = True”并在Build页面中设置“Register COM for intercrop”。然后创建一个新的VB6项目,添加对生成的dll文件的引用但失败了......后来尝试了tlb文件成功但是在说“a”之后没有intellisense。 (没有“有趣”的提示)

Dim a As MyClass
Set a = New MyClass
MsgBox (a.Fun())

所以我的问题是:

1)为什么我必须引用tlb文件而不是dll文件? 2)为什么没有intellisense?

1 个答案:

答案 0 :(得分:1)

尝试勾选:

Tools->Options->Editor->Auto List Members

如果这没有帮助,那么要解决此问题,请使用要在TLB中公开的方法和属性来定义公共接口,然后在类中实现该接口。另外,将ClassInterface (ClassInterfaceType.None)属性添加到类中。在开发组件时,可以使用此方法来避免使用ComVisible(False)属性。

您可以获得更多详情here