ASP、VB調用.NET編寫的DLL (補充:附上源檔案)

來源:互聯網
上載者:User
.NET中的DLL不是動態連結程式庫,而是一個類型庫。要把它作為COM調用需要進行CCW。下面是一個執行個體。

首先建立一個類庫的項目comLib之後編寫一個介面,COM要調用的對象實現這個介面,和一個實現這個介面的類,如果要在VB或ASP中用CreateObject建立對象需要有一個沒有參數的建構函式 。代碼如下: 
using System;using System.Windows.Forms; namespace comLib{    //定義介面,這點很重要 (此介面中的方法與COM組件中的方法一致)    public interface iClass1    {        void Say(string word);    }     public class Class1 : iClass1    {        public void Say(string word)        {            MessageBox.Show(word);        }    }}
 然後運行運行Visual Studio 2005 .net 命令提示字元,執行sn –k comLib.snk,產生一個SNK簽名檔案comLib.snk。       為了使類型在COM中可見需要在AssemblyInfo.cs檔案中設定這麼一項[assembly: ComVisible(true)]。在些檔案中添加一項[assembly: AssemblyKeyFile("檔案路徑\\comLib.snk")]              在方案總管中選擇工程->單擊右鍵->選擇”屬性”->選擇”產生”選項卡->將”為COM Interop註冊”選中,這樣項目造成時就會自動註冊COM組件。        產生項目後,就可以進行COM調用了。這裡以VB為例,建立一個EXE工程,添加對comLib.tlb的引用,些檔案在bin目錄下。然後使用下面的代碼調用      
Option Explicit Private Sub Form_Load()    Dim ic As iClass1    Set ic = New Class1    ic.Say "Hello Jerry!"        '在ASP中要用這種方式    Dim a    Set a = CreateObject("comLib.Class1") End Sub
       運行工程後就會出現個訊息框。說明調用成功。        上面的COM註冊是自動註冊但有些時候要手動註冊,比如你做的類型庫要在別的電腦上使用,耍那台電腦沒有Visual Studio 2005。手動註冊有以下幾個步驟: (1) 使用regasm工具對程式集進行註冊,運行Visual Studio 2003 .net 命令提示,執行regasm comLib.dll /tlb:comLib.tlb          
       (2) 之後使用gacutil工具將DLL程式集安裝到全域組件快取中,也是先運行Visual Studio 2003 .net 命令提示,再執行gacutil /i comLib.dll

 附上源檔案下載:ClsIn.rar

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.