【问题标题】:Need to create COM DLL to use in Scripting like "Excel.Application"需要创建 COM DLL 以在“Excel.Application”等脚本中使用
【发布时间】:2011-06-29 13:58:18
【问题描述】:

我想使用 VSS 2010 创建一个 COM DLL,并且需要注册到 Registry。我的目标是我想使用创建的 DLL,如“Excel.Application”、“Word.Application”、“Wscript.Shell”之类的。

我想使用 CreateObject / New OleObject 方法创建实例,并在我的脚本(VBScript 或 JavaScript)中使用相同的方法。

谁能帮我创建一个COM对象以及如何注册它?

我尝试创建 COM 对象并尝试使用 RegSvr32.exe 进行注册。它说“dll已加载但未找到入口点。确保有效的dll或ocx”

这是我的参考代码...

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

Public Const ClassId As String = "b3b13b6c-6de5-47cb-ad6f-0ae5c7ce5c59"
Public Const InterfaceId As String = "68536b50-1b47-42d5-970f-d3d34b56d681"
Public Const EventsId As String = "413fa5c3-76fa-44d0-b753-1f3d3f52dbaf" 

' A creatable COM class must have a Public Sub New() with no parameters, 
' otherwise, the class  will not be
' registered in the COM registry and cannot be created
' via CreateObject.

Public Sub New()
    MyBase.New()
End Sub


Public Sub Test1()
    Console.WriteLine("Test1....")
End Sub

End Class

谢谢,
Shanmugavel.C

【问题讨论】:

    标签: com ole activexobject


    【解决方案1】:
    1. 创建类库
    2. 在 .vb 文件中,首先创建一个接口。
    3. 通过从接口继承创建类。
    4. 在属性的“签名”选项卡下创建强名称。
    5. 在属性的“编译”选项卡下启用“注册 Com Interop”
    6. 输入装配信息。
    7. 构建解决方案。

    之后,

    1. 转到“Visual Studio 2010 命令提示符”
    2. 导航到 dll 路径
    3. 使用“regasm”注册 dll,例如 regasm test.dll /tlb:test.tlb

    现在注册表项将在 CLSID 和接口下完成。那么

    1. 使用 gacutil /i test.dll 之类的“gacutil.exe”导出到 GAC(全局程序集缓存,即 C:\Windows\Microsoft.Net\Assembly)

    就是这样......我们可以使用COM应用程序......

    参考链接:

    http://www.codeproject.com/KB/COM/nettocom.aspx http://www.15seconds.com/issue/040721.htm

    【讨论】:

      猜你喜欢
      • 2013-03-26
      • 2018-11-12
      • 2020-08-04
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2016-01-24
      • 1970-01-01
      • 2011-08-02
      相关资源
      最近更新 更多