詳解VB調(diào)用C#類庫的方法步驟
使用c#語言在.net平臺生成的dll是基于MSIL的二進(jìn)制代碼,通常情況下是無法被native的語言和程序調(diào)用的(例如vb,vc,delphi)。但是一般來說windows上native的程序都是可以直接使用com對象的。通過.net平臺提供的一些工具,可以為其偽造一個com接口并注冊到系統(tǒng)中。此時,可以在native的程序里,通過這個偽com接口來實現(xiàn)此.net的dll的調(diào)用。
vb調(diào)用C#類庫的方法步驟
1 使用C#建立.net的dll
1.1 建立項目
在.net中新建一個項目:TestCom。
1.2 實現(xiàn)c#類
在class1.cs文件中添加一個接口和一個類:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- namespace TestCom
- {
- [ComVisible(true)]
- public interface iClass1
- {
- string test();
- }
- [ComVisible(true)]
- [ClassInterface(ClassInterfaceType.AutoDual)]
- public class Class1 : iClass1
- {
- public string test()
- {
- return "ok";
- }
- }
- }
注意接口和類上的屬性,對com可見和生成com類型。
1.3添加強(qiáng)名
選擇開始菜單中Vistual Studio目錄下的Vistual Studio Tools下的Vistual Studio 命令提示。使用sn -k c:\myKey.snk生成簽名文件。
在項目上右鍵,點擊屬性,選擇簽名,選中為程序集簽名,選擇myKey.snk文件。
1.4生成解決方案
在項目目錄的\TestCom\bin\Debug中可以找到TestCom.dll。至此,c#生成的.net dll已經(jīng)完成。
2 生成和注冊類型庫
2.1生成tlb類型庫
在Visual Studio命令提示符下,切換到此目錄。
輸入tlbexp TestCom.dll /out:TestCom.tlb,提示成功導(dǎo)出tlb類型庫文件。
2.2 注冊類型庫
輸入regasm TestCom.dll /tlb: TestCom.tlb /codebase,將類型庫導(dǎo)入到注冊表。提示成功注冊了類型,說明操作成功,此時TestCom .dll可以作為一個com來使用。
2.3 添加dll到GAC
輸入gacutil /i TestCom.dll,將此.net程序集添加到GAC。
3 vb調(diào)用C#類庫測試
3.1 創(chuàng)建vb項目
在vb中新建一個標(biāo)準(zhǔn)exe項目。
在項目菜單選擇引用,在彈出的引用com對象列表中找到TestCom,選上。
在窗體上拖放一個按鈕,雙擊按鈕,在按鈕事件里輸入代碼:
- Dim a As New TestCom.Class1
- MsgBox a.test
3.2 運行程序
啟動項目,點擊按鈕,彈出對話框ok,說明調(diào)用成功。
4 asp調(diào)用測試
4.1創(chuàng)建asp文件
在iis的根目錄下新建一個文本文件,改名為1.asp,輸入以下內(nèi)容:
- < %
- SET s = CreateObject("TestCom.Class1")
- Response.Write(s.test())
- %>
4.2 運行程序
在ie中訪問此文件,頁面輸出ok,說明VB調(diào)用C#類庫調(diào)用成功。
【編輯推薦】