C#編寫com+

來源:互聯網
上載者:User
我們將介紹C#編寫COM組件的幾種方法,並通過代碼講解的相識,對.NET中的C#編寫COM組件進行詳細的介紹。包括產生.NET程式集,註冊並建立一個程式庫等等。

Encrypt( string pToEncrypt,string sKey ) //加密 Decrypt( string pToDecrypt,string sKey ) //解密 然後你這樣寫代碼:

using System; using System.Runtime.InteropServices; namespace 名稱空間 { // 首先建立介面,這個是Com必須使用的 [Guid( "61BB24CB-4C2C-40f8-9E13-1AC5E558D56A" )] public interface IEncrypt { string Encrypt( string pToEncrypt,string sKey ); string Decrypt( string pToDecrypt,string sKey ); } // 寫介面的實現 [Guid( "CB52E990-185E-4448-A7E8-C88ECAD563AB" )] public class 類名稱 : IEncrypt { public string Encrypt( string pToEncrypt,string sKey ) { // 複製FAQ加密代碼 } public string Decrypt( string pToDecrypt,string sKey ) { // 複製FAQ解密代碼 } } } 然後用vs.net打包成.dll類庫檔案,假設名稱為MyEncrypt.dll

然後用如下工具

regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb

這個.tlb檔案就是類型庫,可以由vb6和vc++6引用.

注意上面的guid是使用vs.net工具菜單裡面的建立guid工具產生的.

還要注意,vs.net自動產生的assemblyinfo.cs檔案中必須添加強式名稱和版本號碼,因為Com組件需要版本號碼,不要改動版本號碼,也不要用vs.net自動的1.*這樣的版本號碼,最好使用

1.1.1.1這樣的固定版本,而且必須一次添加,不能多次添加.

步驟

一 產生.net程式集:

首先你把http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=35935的代碼複製.

然後你複製這個代碼

using System; using System.IO; using System.Text; using System.Runtime.InteropServices; using System.Security.Cryptography; namespace Csic { // 首先建立介面,這個是Com必須使用的 [Guid( "61BB24CB-4C2C-40f8-9E13-1AC5E558D56A" )] public interface IEncrypt { string Encrypt( string pToEncrypt,string sKey ); string Decrypt( string pToDecrypt,string sKey ); } // 寫介面的實現 [Guid( "CB52E990-185E-4448-A7E8-C88ECAD563AB" )] public class Crypt : IEncrypt { public string Encrypt( string pToEncrypt,string sKey ) { // 複製FAQ加密代碼 } public string Decrypt( string pToDecrypt,string sKey ) { // 複製FAQ解密代碼 } } } 把上面的檔案儲存成vs.net項目的一個類庫工程.

然後使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示字元

在命令列內打下

cd c:/ sn -k myKey.snk 就在C盤根目錄下產生一個名叫myKey.snk的強式名稱檔案,然後關閉提示符視窗.

在vs.net的那個類庫工程自動產生的AssemblyInfo.cs檔案內把

[assembly: AssemblyKeyFile( "" )] 改成

[assembly: AssemblyKeyFile( @"C:/myKey.snk" )] 把[assembly: AssemblyVersion( "1.0.*" )]

改成

[assembly: AssemblyVersion( "1.0.0.0" )] // 注意:這時你的Com組件版本為1.0.0.0版 然後按Shift + Ctrl + B鍵產生dll庫(使用Release模式),假設是Csic.Crypt.dll.

這時候,程式集就建立成功了.

二、註冊該程式集並建立一個類型庫

仍然使用開始菜單中的Vistual Studio .Net命令提示字元

進入你的項目目錄,假設為D:/myProject/bin/Release

在對話方塊中輸入

d: cd myproject/bin/release 然後輸入 dir 命令可以看見Csic.Crypt.dll檔案

然後輸入:regasm /tlb Csic.Crypt.tlb Csic.Crypt.dll

然後就在這個目錄下產生了Csic.Crypt.tlb類型庫檔案.不要關閉此提示符視窗.

這時候,這個.dll的.net程式集就變成一個標準的Com組件了,但是還不能用,必須讓它變成全域Com組件.

這個regasm 公用程式將建立一個類型庫並在 Windows 註冊表中對其進行註冊,以使 PhysServer2.dll 中的類對 COM 用戶端可用 .

三、 將程式集添加到全域組件快取中

進入提示符視窗,輸入

gacutil /I Csic.Crypt.dll 這時,你的這個dll就被複製到全域組件快取中了.也就是說無論在這個電腦的哪個硬碟上都可以使用此dll組件了.

四、C#編寫COM組件使用方法

asp內的使用方法

set obj = Server.CreateObject( "Csic.Crypt" ) dim str1 str1 = obj.Encrypt( "要加密內容","密碼" ) // 加密 dim str2 str2 = obj.Decrypt( "要解密內容","密碼" ) // 解密

相關文章

聯繫我們

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