天天看點

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