1

在 VB6 中,ActiveX DLL 被列为项目模板,但在 VS 2005+ 中没有这样的东西。我的旧 ActiveX DLL 模板在哪里?提前谢谢了。

4

4 回答 4

2

几个概念;.NET 程序集在功能上等同于 .NET 语言中的 ActiveX DLL。.NET 类和方法可以用在不同上下文中具有不同含义的属性进行修饰。通过使用各种属性分配正确的 GUID,可以将 .NET 程序集转换为 ActiveX/COM DLL(或 OCX)。

此处是设置 .NET 程序集使用 COM 的基本概述。

请注意,谷歌搜索应该包括 VB6 .NET 和 COM(不是 ActiveX)。COM 产生更多的点击,因为它是 ActiveX 术语背后的基础技术。

我链接的 MSDN 文章显示了 .NET 类的基本 COM 设置。这里的属性是 ComClass Attribute。

<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1

#Region "COM GUIDs"
    ' These  GUIDs provide the COM identity for this class 
    ' and its COM interfaces. If you change them, existing 
    ' clients will no longer be able to access the class.
    Public Const ClassId As String = "6DB79AF2-F661-44AC-8458-62B06BFDD9E4"
    Public Const InterfaceId As String = "EDED909C-9271-4670-BA32-109AE917B1D7"
    Public Const EventsId As String = "17C731B8-CE61-4B5F-B114-10F3E46153AC"
#End Region

    ' A creatable COM class must have a Public Sub New() 
    ' without parameters. Otherwise, the class will not be 
    ' registered in the COM registry and cannot be created 
    ' through CreateObject.
    Public Sub New()
        MyBase.New()
    End Sub

End Class

如果您尝试用 .NET 程序集替换现有的 COM DLL 或 OCX,还有其他一些特别有用的属性。最后,.NET 有许多不同的向导可以帮助您处理繁琐的细节。

于 2008-11-21T13:25:03.317 回答
1

试试这个: http: //msmvps.com/blogs/pauldomag/archive/2006/08/16/107758.aspx

它概述了如何创建一个 activex 控件并在网页中使用它。据我所知,实际上没有“ActiveX”项目模板,因为 .NET 的做法不同。但是,您可以使您的 .Net 控件对 COM 世界可见,如上面的文章所示。

于 2008-11-21T04:01:49.083 回答
0
于 2008-12-16T21:34:30.230 回答
0

你的问题不是很清楚,但如果你想能够在 VB6(或其他一些 com 环境)中使用在 VS2005 中创建的东西,你想看看Interop Forms Toolkit。这极大地简化了 VB6 和 VS2005 之间的互操作。现在,如果您真的想分发这些应用程序,安装您创建的应用程序会变得更有趣(提示:不要使用 GAC,将 .Net dll 安装在与应用程序可执行文件相同的目录中,并学习使用 RegAsm。)

如果您稍微描述一下您想要将 ActiveX.dll 用于什么(项目库或用户控件)以及您想要使用它的环境,可以给出更多建议。

于 2008-11-22T18:16:22.463 回答