【发布时间】:2019-03-13 15:24:14
【问题描述】:
最近我一直在尝试创建一个activeX 控件并在一些vb.net 代码中使用它。经过一番努力,我在 vb6 中创建了我的控件并生成了 ocx 文件。我一直在尝试使用它,如 microsoft docs here 中所示,但无济于事。 开:
myActiveX = New MyActiveXComponent.MyClass()
我不断得到
MyActiveXComponent.MyClass.Private Sub New() 在 这个上下文,因为它是“私人的”
我可以将它导入工具箱并以这种方式使用,但我不希望这样做,我使用的是 Visual Studio 2005。此外,我有一个 ocx,令我惊讶的是我可以同时使用两种方式(不是我的),所以我怀疑有什么问题和我的,但我不知道是什么。
【问题讨论】:
-
如果类名为
MyClass,您似乎正在创建一个实例。这是您在 ocx 中定义的类吗? -
@tcarvin 是的,在这种情况下尝试实例化用户控件 MyClass 包含在 ocx 中,您可以在此处找到源代码 support.microsoft.com/en-us/help/315847/…。
-
您的
Sub New是私人的吗?也许需要Public? -
@ChrisDunaway 我根本无法在 vb6 中编写 sub new,据我所知 New 应该在 interop 生成的包装器内,它正在查看对象浏览器,但它继承自 System.对象,在其他工作 ocx 中它是类的成员,几乎就像它是类模块一样。
标签: vb.net vb6 activex com-interop vb6-migration