C#開發COM組件

來源:互聯網
上載者:User

標籤:

1、每個COM組件所有對外公布的方法都必須通過介面形式實現;

2、由於.Net下編譯的COM組件並等同於C編譯的COM組件,所以存在必須在運行目標機器註冊的情況,對此.Net下編譯的COM組件必須為程式進行簽名,即強命名密鑰;

 

步驟:

1、 建立一個類庫項目(檔案—建立—項目—類庫【命名:HK.NetPBDemo】)

2、 針對“注意第一點要求”,建立一個介面檔案(項目右鍵—添加—建立項—介面【命名:IHK.cs】)

3、 IHK.cs介面檔案編碼:

int TestFunction(int num, string str1, string str2, double db);

4、 將Class1.cs 改名為:HKTest.cs (這步其實很囉嗦,不過文檔都整理了,就這樣寫吧)

提示框點擊“是”,如

5、 HKTest.cs 類檔案編碼:

添加名稱空間:using System.Runtime.InteropServices;

實現介面、並在類頭添加屬性:[ClassInterface(ClassInterfaceType.None)]。如

6、 在“方案總管”中找到節點“Properties”開啟AssemblyInfo.cs檔案

7、 將[assembly: ComVisible(false)]屬性改成[assembly: ComVisible(true)]

8、 項目右鍵—屬性、或者雙擊“Properties”節點,進入到項目屬性設定介面

  8.1、選擇“應用程式”選項卡,點擊“程式集資訊”按鈕,如

8.2、勾選“使程式集COM可見”,確定。如

8.3、選擇“產生”選項卡,在底部“輸出”欄目下,勾選“為COM互操作註冊”。如

8.4、選擇“簽名”選項卡。

  8.4.1、勾選“為程式集簽名”;

  8.4.2、在“選擇強式名稱密鑰檔案”的下拉框選擇“<建立…>”

  8.4.3、在“密鑰檔案名稱”輸入:HK.NetPBDemo.snk(任意命名,snk尾碼即可)

  8.4.4、去掉“使用密碼保護密鑰檔案”,確定。

  【8.4.3、8.4.4】如

 

9、 編譯項目。

10、 開啟vs指令窗,如

 

11、 運行指令:

gacutil /i DLL路徑\HK.NetPBDemo.dll 將這個DLL加入的全域緩衝裡

regasm DLL路徑\HK.NetPBDemo.dll 註冊這個dll

附:以上11個步驟即可完成COM組件在原生環境下註冊並提供調用。

1、 若要在其他機器使用必須把編譯的“DLL”、“TLB”檔案一併複製在目標機器(已安裝.Net Framework環境)並放在需調用的程式根目錄;

2、 在目標機器“c:\WINDOWS\Microsoft.Net\Framework\v4.0.3.319”下找到“RegAsm.exe”,該路徑是我的安裝路徑,如果沒有就搜尋下“RegAsm.exe”這個東東吧。【我的環境:虛擬機器、系統WindowsXP、.Net Framework 4.0】

3、 運行CMD開啟指令窗,講路徑定位到“c:\WINDOWS\Microsoft.Net\Framework\v4.0.3.319”,

運行指令:regasm.exe DLL路徑\ HK.NetPBDemo.dll。 如【註冊成功】

 

二、DELPHI調用

1、 開啟Delphi7,File—Close All

2、 Project—Import Type Library,點擊“Add”按鈕選中剛才編譯後的“tlb”COM檔案【HK.NetPBDemo.tlb】點擊“Create Unit”如

3、 Project—Import Type Library,在列表中選中剛才添加的組件,點擊“Install..”按鈕。

4、 File—New—Application,添加一個button按鈕,然後在“ActiveX”選項卡選擇剛才添加的組件,添加至項目。如

 

5、 Delphi 關鍵代碼

C#開發COM組件

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.