0

我想使用 VSS 2010 创建一个 COM DLL,并且需要注册到注册表。我的目标是我想使用创建的 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

4

1 回答 1

0
  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

于 2011-06-29T05:58:18.253 回答