天天看点

VB.NET 开发Com组件在 VB调用

原来在vs.net 2005中用vb来实现这个功能是如此的简单。

 方法如下:

 新建一个 项目 ,选择 Visual Basic / Window / 类库 ,假设项目名为ClassLibrary1

 然后 在 solution manager(解决方案资源管理器)中, 将 新创建的 Class1.vb 文件删除。

 然后 在  solution manager(解决方案资源管理器)中 的项目上点击右键 ,在弹出的菜单上 点击 添加 / 类 ,在弹出的对话框中选择 com类 ,修改类的名称(本例中修改为ClassApp.vb),后点击 添加 按钮。

<ComClass(ClsApp.ClassId, ClsApp.InterfaceId, ClsApp.EventsId)> _

Public Class ClsApp

#Region "COM GUID"

    ' 这些 GUID 提供此类的 COM 标识

    ' 及其 COM 接口。若更改它们,则现有的

    ' 客户端将不再能访问此类。

    Public Const ClassId As String = "c47c7000-b5b0-4e7d-a985-d0e4ef0a0868"

    Public Const InterfaceId As String = "39d04b13-3f4c-4a16-977d-f205a96f8a00"

    Public Const EventsId As String = "fc43772a-c3ae-429e-8f89-d9c7b613b2d7"

#End Region

    ' 可创建的 COM 类必须具有一个不带参数的 Public Sub New()

    ' 否则, 将不会在

    ' COM 注册表中注册此类,且无法通过

    ' CreateObject 创建此类。

    Public Sub New()

        MyBase.New()

    End Sub

    Public Function ExecuteEvent(ByVal sText As String) As Boolean

        On Error GoTo Err

        MsgBox(sText)

        Exit Function

Err:

        MsgBox(Err.Description, vbInformation)

        ExecuteEvent = False

        Exit Function

    End Function

End Class

---------------------- 

然后就可以编译,编译后,在VB中添加如下的代码来调用这个com  

Private Sub Command1_Click()

    Dim obj As Object

    Dim sXml As String

    sXml = ""

    Set obj = CreateObject("ClassLibrary1.ClsApp")

    obj.ExecuteEvent "TEST !"

End Sub