精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用C#創(chuàng)建COM組件全過程

開發(fā) 后端
用C##創(chuàng)建COM組件看來是個很簡單的功能,但因為此類文章較少,還是有很多不明白的地方需要學(xué)習(xí)。本文詳細(xì)闡述如何用C#創(chuàng)建COM組件,并能用VC6.0等調(diào)用。

本文詳細(xì)闡述如何用C#創(chuàng)建COM組件,并能用VC6.0等調(diào)用。并附有完整測試通過的代碼。該功能總體看來很簡單。可是我在第一次用C#做COM的時候,痛不欲生。因為很少有人寫這類文章。而且就算有代碼也是亂帖。根本是讓人誤入歧途。后來在C# help上面看一個老外寫的文章 (上面有一個完整的SQL SERVER實例),才完成該功能。拿來分享。

開發(fā)工具:VS2008

VS2008命令提示符(呵呵,這個你應(yīng)該可以找到在什么地方吧)

附:本文適用任何VS系列工具。

在用C#創(chuàng)建COM組件時,一定要記住以下幾點(diǎn):

1:所要導(dǎo)出的類必須為公有;

2:所有屬性、方法也必須為公有;

3:要導(dǎo)出的屬性、方法必須用接口方式;如果沒有在接口中聲明,即使該方法(屬性)為公有,也不能正常導(dǎo)出到COM。但他們可以被別的.NET程序所使用;

4:所有的事件也必須用接口方式;

現(xiàn)在我們開始正題:

一、新建一個Visual C#工程(習(xí)慣這種叫法了,現(xiàn)在應(yīng)該叫解決方案),選擇類型“類庫”;我就叫MyCom吧。

二、編寫導(dǎo)出接口。為了大家理解方便,我僅一加法操作舉例。如下:

  1. [Guid("154BD6A6-5AB8-4d7d-A343-0A68AB79470B")]  
  2.  
  3.     public interface MyCom_Interface  
  4.  
  5.     {  
  6.  
  7.         [DispId(1)]  
  8.  
  9.         int Add(int a, int b);  
  10.  
  11.   }  

Guid為全局唯一標(biāo)識,可以用VS2008的命令提示符中輸入:guidgen 就會出來它的窗口。在幾個復(fù)選框選擇最后一個Registry Format,點(diǎn)擊New Guid,然后COPY就行了(以下如有g(shù)uid的字符串,全部同樣操作)

 [DispId(1)]為函數(shù)的標(biāo)識。如果有多個函數(shù)可相應(yīng)的在函數(shù)前面加[DispId(2)], [DispId(3)]…

三、創(chuàng)建事件接口。

  1. [Guid("D11FEA37-AC57-4d39-9522-E49C4F9826BB"),  
  2.  
  3. InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]  
  4.  
  5. public interface MyCom_Events  
  6.  
  7. {  
  8.  
  9. }  

Guid同二,不多說

InterfaceType表求向COM公開的方式,這里選擇為以調(diào)度的方式向COM公開。

四、 創(chuàng)建具體類:

  1. [Guid("2E3C7BAD-1051-4622-9C4C-215182C6BF58"),  
  2.  
  3.       ClassInterface(ClassInterfaceType.None),  
  4.  
  5.       ComSourceInterfaces(typeof(MyCom_Events))]  
  6.  
  7.     public class Class1 : MyCom_Interface  
  8.  
  9.     {  
  10.  
  11.         public int Add(int a, int b)  
  12.  
  13.         {  
  14.  
  15.             return a + b;  
  16.  
  17.         }  
  18.  
  19.  }  

至此,代碼完畢。很簡單吧。別急,后面來有常常被忽略的步驟,先把整體代碼放在下面(注意引用InteropServices):

  1. using System;  
  2.  
  3. using System.Runtime.InteropServices;  
  4.  
  5. using System.Text;  
  6.  
  7.    
  8.  
  9. namespace MyCom  
  10.  
  11. {  
  12.  
  13.     [Guid("154BD6A6-5AB8-4d7d-A343-0A68AB79470B")]  
  14.  
  15.     public interface MyCom_Interface  
  16.  
  17.     {  
  18.  
  19.         [DispId(1)]  
  20.  
  21.         int Add(int a, int b);  
  22.  
  23.     }  
  24.  
  25.    
  26.  
  27.     [Guid("D11FEA37-AC57-4d39-9522-E49C4F9826BB"),  
  28.  
  29.     InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]  
  30.  
  31.     public interface MyCom_Events  
  32.  
  33.     {  
  34.  
  35.    
  36.  
  37.     }  
  38.  
  39.    
  40.  
  41.     [Guid("2E3C7BAD-1051-4622-9C4C-215182C6BF58"),  
  42.  
  43.       ClassInterface(ClassInterfaceType.None),  
  44.  
  45.       ComSourceInterfaces(typeof(MyCom_Events))]  
  46.  
  47.     public class Class1 : MyCom_Interface  
  48.  
  49.     {  
  50.  
  51.         public int Add(int a, int b)  
  52.  
  53.         {  
  54.  
  55.             return a + b;  
  56.  
  57.         }  
  58.  
  59.     }  
  60.  
  61. }  

五、大家都知道COM是需要注冊的。注冊時要加密鑰文件.SNK。這一部就是生成SNK文件。進(jìn)入VS2008命令提示符。用命令:sn –k MyCom.snk回車。我的在E:\vs2008\vc下面就生成了一個(MyCom.snk)的文件。(你們可以根據(jù)自己的命令提示符所在的文件目錄下去找)。然后把它COPY到你的工程根目錄下。

六、打開AssemblyInfo.cs。在里面加入[assembly:AssemblyKeyFile("MyCom.snk")]

七、(1)項目屬性->應(yīng)用程序->程序集信息->選中“使程序集COM可見”。(2)項目屬性->生成->選中“為COM互操作注冊”。

八、生成。如果在Debug下有一個MyCom.tlb,那你就成功了(肯定還有MyCom.dll)要此tlb文件是為了在VC6.0里面測試。

九、在VC里面建一個MFC對話框程序(當(dāng)然Console程序也一樣,我為了看著方便)。建好后,把剛剛生成的MyCom.tlb拷到你的根目錄下。

十、選在代碼里加入#import "MyCom.tlb",然后編寫核心測試代碼:(我是在一個Button1按鈕里面添加的),如下:

  1. void CTestDlg::OnButton1()   
  2. {  
  3.     CoInitialize(NULL);  //注意初始化  
  4.     MyCom::MyCom_InterfacePtr p(__uuidof(MyCom::Class1));  //創(chuàng)建智能指針  
  5.     MyCom::MyCom_Interface *s = p;  
  6.     int a = 3;  
  7.     int b = 6;  
  8.     int c = s->Add(a,b);  
  9.     CString str;  
  10.     str.Format("%d",c);  
  11.     MessageBox(str);  

當(dāng)彈出一個9,就說明你已經(jīng)成功用C#創(chuàng)建COM組件了。

【編輯推薦】

  1. 在Visual Studio 2010中使用C# 4.0的動態(tài)類型
  2. C#3.0中Lambda表達(dá)式詳解
  3. 淺談C#泛型的用處
  4. 淺談C#如何實現(xiàn)多繼承
  5. C#實用基礎(chǔ)教程
責(zé)任編輯:yangsai 來源: C系列語言大本營
相關(guān)推薦

2009-08-18 16:49:05

C# 操作XML

2010-11-19 10:11:49

Oracle物化視圖

2009-11-02 14:53:30

Oracle創(chuàng)建用戶權(quán)

2011-02-22 10:46:02

Samba配置

2011-04-18 15:56:10

軟件測試

2009-12-08 17:56:16

WCF配置

2011-09-06 15:38:20

QT安裝

2011-01-21 17:51:52

2009-04-13 12:37:18

2009-08-20 11:03:34

Visual C#使用

2012-11-06 10:19:18

Java自定義加載Java類

2009-06-10 16:55:42

cygwin netb安裝

2010-03-01 17:01:03

Python編程技巧

2010-03-10 13:24:45

Zend Debugg

2010-06-17 13:10:09

Linux Grub修

2011-03-11 10:39:02

YUM安裝LAMP

2010-07-21 14:51:19

telnet-serv

2019-05-14 15:27:31

MongoDB自動備份數(shù)據(jù)庫

2010-06-12 10:03:20

Ubuntu Grub

2009-08-10 13:40:46

創(chuàng)建C# COM對象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

91免费黄视频| 亚洲最大福利视频网站| 性欧美13一14内谢| 四虎精品永久免费| 一区二区三区美女视频| 久草精品电影| 国产又粗又猛又爽又黄的| 欧美特黄一区| 国产一区二区动漫| 国产高潮失禁喷水爽到抽搐| 欧美性xxx| 一区二区在线观看视频在线观看| 精品综合久久| 99精品在线看| 三级久久三级久久久| 美女扒开尿口让男人操亚洲视频网站 | 五月天婷婷激情网| 麻豆国产精品视频| 2019中文字幕全在线观看| 9999热视频| 精品不卡一区| 日韩成人在线观看| 亚洲av毛片在线观看| 奇米777日韩| 午夜天堂影视香蕉久久| www.亚洲一区二区| 岛国大片在线观看| 成人av免费观看| 亚洲一区二区免费| 啪啪小视频网站| 国产亚洲精品自拍| 欧美黑人巨大xxx极品| 激情五月深爱五月| 国产精品免费99久久久| 亚洲精品久久久久国产| av不卡中文字幕| 久久中文字幕一区二区| 欧美日韩国产另类一区| 日本精品久久久久中文字幕| 国产污视频在线播放| 一区二区三区高清在线| 久久免费视频2| 精品国产白色丝袜高跟鞋| 国产精品视频yy9299一区| 欧美精品欧美精品| 秋霞网一区二区| 国产suv精品一区二区6| 91影院未满十八岁禁止入内| 国产精品一区二区人人爽| 久久国产精品99精品国产| 国产精品草莓在线免费观看| 天堂网中文字幕| 乱码第一页成人| 日韩av快播网址| 丰满少妇xoxoxo视频| 久久成人在线| 国产成人精品av| 一二三区免费视频| 日韩精品电影一区亚洲| 国产精品美女无圣光视频| 中文字幕人妻精品一区| 美女视频黄a大片欧美| 国产精品亚洲一区二区三区| 亚洲一区二区天堂| 极品美女销魂一区二区三区| 91免费国产网站| 国产夫妻性生活视频| 懂色av噜噜一区二区三区av| 国产专区一区二区| 天堂av电影在线观看| 久久一日本道色综合| 美女主播视频一区| 午夜在线免费观看视频| 亚洲精品免费在线| 国产1区2区3区中文字幕| а√在线中文在线新版| 色天使色偷偷av一区二区| 欧美日韩在线免费播放| 亚洲日本中文| 欧美精品一区视频| 国产一二三四五区| 亚洲第一偷拍| 97av在线视频| 国产精品高清无码| 国产高清无密码一区二区三区| 国产伦精品一区二区三区高清| 韩日在线视频| 亚洲欧美精品午睡沙发| 青青草国产精品视频| 性欧美freehd18| 日韩欧美三级在线| 免费观看av网站| 亚洲91中文字幕无线码三区| 性欧美视频videos6一9| 怡春院在线视频| av中文字幕不卡| 在线一区日本视频| 周于希免费高清在线观看 | 99在线小视频| 久久这里只精品最新地址| 亚洲欧洲日韩精品| 国产乱码精品一区二三赶尸艳谈| 欧美三级资源在线| 国产一级二级视频| 91综合久久| 欧美尤物巨大精品爽| 国产又粗又猛又爽| 久久亚洲精精品中文字幕早川悠里| 樱花www成人免费视频| 免费高潮视频95在线观看网站| 欧美日本精品一区二区三区| 日韩成人av一区二区| 亚洲91精品| 国产精品久久激情| 天堂av电影在线观看| 一区二区三区自拍| 日韩av卡一卡二| 亚洲精品亚洲人成在线| 欧美激情三级免费| 99久久婷婷国产一区二区三区| 久久久久亚洲综合| 国产h视频在线播放| 日韩精品一区二区三区中文| 影音先锋欧美精品| 欧美brazzers| 久久综合狠狠综合久久综合88| 欧日韩免费视频| 中文字幕av一区二区三区四区| 在线观看国产欧美| 无码人妻精品一区二区三区不卡| 97精品电影院| 99视频在线免费播放| 亚洲专区**| 欧美成人性色生活仑片| 97精品人妻一区二区三区香蕉| 久久亚洲精精品中文字幕早川悠里| 男人添女人荫蒂免费视频| 激情五月综合婷婷| 久久综合网hezyo| 一道本无吗一区| 国产精品毛片a∨一区二区三区| 日本999视频| 成人看的羞羞网站| 国产精品日韩电影| 香蕉视频网站在线观看| 欧美日韩一区二区三区在线| 国产精品视频在| 老司机免费视频一区二区三区| 亚洲视频在线观看日本a| 成人亚洲视频| 伦理中文字幕亚洲| 国产女同91疯狂高潮互磨| 亚洲蜜桃精久久久久久久| 精品国产午夜福利在线观看| 中文字幕午夜精品一区二区三区| 亚洲a级在线观看| 色呦呦在线资源| 亚洲精品久久久久久久久久久久久 | 欧美男同视频网| 国产va免费精品高清在线| 狠狠色伊人亚洲综合网站l| 在线观看不卡视频| 亚洲一级二级片| 国产a级毛片一区| 男人插女人视频在线观看| 青青一区二区| 国产精品久久一| 午夜小视频在线| 日韩精品中文字幕在线不卡尤物| 日韩三级视频在线| 久久蜜臀精品av| 九一精品久久久| 亚洲国产日韩在线| 欧美少妇一区| 国产精品成人3p一区二区三区| 欧美国产日韩免费| 色就是色亚洲色图| 欧美猛男gaygay网站| 久久亚洲AV无码| 国产午夜精品久久久久久久| 精品亚洲视频在线| 亚洲黄页一区| 小说区图片区图片区另类灬| 中文字幕一区二区三区中文字幕| 51久久精品夜色国产麻豆| 精品乱码一区二区三四区视频| 欧美精品18+| 日韩欧美激情视频| 国产精品美女久久久久av爽李琼| 日韩女优在线视频| 蜜臀av一级做a爰片久久| 欧美极品少妇无套实战| 要久久电视剧全集免费| 亚洲aⅴ日韩av电影在线观看 | 成人a级免费视频| 福利成人导航| 久热精品视频在线观看一区| 神马久久精品| 欧美一级高清片在线观看| 黄色污污网站在线观看| 夜夜揉揉日日人人青青一国产精品| 性欧美13一14内谢| 国产成人福利片| 99热这里只有精品在线播放| 亚洲黄色av| av磁力番号网| 欧美在线观看视频一区| 国产一区二区三区av在线| 日本一区二区三区中文字幕 | 91麻豆天美传媒在线| 午夜先锋成人动漫在线| 91成人伦理在线电影| 六九午夜精品视频| 日韩av男人的天堂| 成人影音在线| 久久国产天堂福利天堂| 中文字幕在线视频区| 精品伊人久久97| 亚洲精品一级片| 69久久99精品久久久久婷婷| 探花国产精品一区二区| 色一情一伦一子一伦一区| 一区二区视频免费看| 国产精品理论片| 精品国产aaa| 久久久精品日韩欧美| 国产激情视频网站| 成人精品国产免费网站| 欧美69精品久久久久久不卡| 久色婷婷小香蕉久久| 亚洲 中文字幕 日韩 无码| 翔田千里一区二区| 极品美女扒开粉嫩小泬| 在线成人亚洲| 水蜜桃色314在线观看| 国产精品大片| 青青草视频国产| 欧美午夜不卡影院在线观看完整版免费| 一区二区三区四区视频在线| 欧美精品系列| 亚洲女人毛片| 国产大片一区| 在线观看成人av电影| 99精品在线免费在线观看| 中文字幕在线中文字幕日亚韩一区| 色综合久久网| 日韩视频在线免费播放| 欧美国产激情| 亚洲色成人www永久在线观看| 亚洲精品影院在线观看| 久久综合色视频| 性欧美暴力猛交另类hd| av片中文字幕| 美国三级日本三级久久99| 99热一区二区| 国产高清成人在线| a级片在线观看视频| av成人老司机| 国产熟女一区二区| 自拍偷拍欧美精品| 欧美成人aaa片一区国产精品| 亚洲一区二区黄色| 日韩黄色在线播放| 欧美日韩在线观看一区二区| 国产精品无码久久av| 精品嫩草影院久久| 男人的天堂在线免费视频| 一区二区在线视频播放| 超碰最新在线| 7m精品福利视频导航| 欧美色片在线观看| 91免费精品视频| 国产三级精品三级在线观看国产| 久中文字幕一区| 999久久久91| 国产成人一区二区三区别| 亚洲欧美日韩一区在线观看| 免费一区二区三区在线观看| 国产99精品视频| 久久av无码精品人妻系列试探| 国产精品久久久久国产精品日日| 免费无码毛片一区二区app| 日韩欧美精品免费在线| 国产乱码久久久久| 亚洲精品电影在线观看| 午夜在线免费观看视频| 国语对白做受69| 国产第一亚洲| 韩国一区二区三区美女美女秀| 欧美日韩伦理在线免费| 黄色a级片免费看| 青娱乐精品视频在线| 人妻 丝袜美腿 中文字幕| 中文字幕av一区二区三区| 久久免费视频6| 欧美视频精品在线观看| 韩国av免费在线| 中文字幕免费精品一区| 国产盗摄精品一区二区酒店| 国产精品视频在线播放| jazzjazz国产精品麻豆| 亚洲欧洲久久| 亚洲欧美日韩国产| 性猛交╳xxx乱大交| 国产精品美日韩| 天天干在线播放| 精品剧情v国产在线观看在线| 在线观看免费网站黄| 777777777亚洲妇女| 日韩精品一区国产| 亚洲一区不卡在线| 天堂av在线一区| 精品国产av色一区二区深夜久久 | 中文字幕欧美三区| 国产一区二区三区影院| 欧美一区二区福利在线| www.黄在线观看| 91成人在线播放| 久久97精品| 人妻夜夜添夜夜无码av| 国产一区二区三区在线看麻豆| 日本美女xxx| 一本到不卡精品视频在线观看| 人妻91麻豆一区二区三区| 色综合老司机第九色激情| 91成人短视频在线观看| 亚洲免费视频一区| 日本不卡一区二区三区高清视频| 九色porny自拍视频| 欧美日韩在线视频一区二区| 亚洲精选一区二区三区| 欧美成人亚洲成人| 日韩中文字幕| 男女裸体影院高潮| 国产精品一二三| 波多野结衣亚洲色图| 制服丝袜亚洲色图| 国产三区视频在线观看| 91色琪琪电影亚洲精品久久| 婷婷色综合网| 久久久久久久久久毛片| 亚洲乱码中文字幕| 精品国产无码一区二区| 欧美成人精品在线| 一区二区三区四区视频免费观看| 路边理发店露脸熟妇泻火| 国产suv精品一区二区6| 国产在线观看成人| 亚洲国产美女精品久久久久∴| 国产免费拔擦拔擦8x高清在线人| 久久艹中文字幕| 久久精品五月| 国产99在线 | 亚洲| 欧美亚洲动漫精品| 黄色网址在线免费观看| 91久久大香伊蕉在人线| 欧美午夜一区二区福利视频| 久久久久9999| 色噜噜夜夜夜综合网| 在线观看二区| 亚洲综合自拍一区| 日韩视频二区| 阿v天堂2014| 欧美一级生活片| 超碰在线公开| 性欧美大战久久久久久久免费观看| 久久精品国产99久久6| 青娱乐国产精品| 日韩精品在线播放| 国产一区二区色噜噜| 激情六月天婷婷| 久久久久久久久免费| 91欧美日韩麻豆精品| 高清欧美性猛交xxxx| 国产91久久精品一区二区| 久久久久xxxx| 精品美女国产在线| 日本不卡不卡| 国产精品一区而去| 奇米888四色在线精品| 午夜写真片福利电影网| 国产视频精品一区二区三区| 九九久久国产| 久久久久久久午夜| 中文字幕永久在线不卡| 婷婷在线观看视频| 成人激情综合网| 99亚洲伊人久久精品影院红桃| 任你操精品视频| 日韩电影大片中文字幕| 国产精品美女久久久久| 超碰97人人射妻| 亚洲免费毛片网站| 免费国产在线观看| 亚洲xxxx在线| 免费在线欧美视频| 久久亚洲天堂网| 欧美黑人国产人伦爽爽爽| 日韩欧美二区| 亚洲一区二区三区蜜桃|