【问题标题】:where is my ActiveX DLL project template in VS 2005?我在 VS 2005 中的 ActiveX DLL 项目模板在哪里?
【发布时间】:2008-11-21 03:40:44
【问题描述】:

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

【问题讨论】:

    标签: visual-studio-2005 vb6 templates activex


    【解决方案1】:

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

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

    请注意,谷歌搜索应该包括 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 有许多不同的向导可以帮助您处理繁琐的细节。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          我不知道这是否是你想要做的。但是如果你在 Visual Studio 中右键单击 Toolbox,在弹出菜单中选择 Choose Item…

          当您出现“选择工具箱项”对话框时,选择“COM组件”选项卡并检查您要添加的COM组件到工具箱。我这样做是为了将“Windows Media Player”添加到工具箱中,并在 C# Winform 中使用它。

          从此对话框中,您可以访问系统上加载的任何 COM、OCX 或 ActiveX 控件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-06-26
            • 2010-10-10
            • 2010-10-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多