a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

c#創建vc可調用的com組件方法分享

2020-01-24 03:00:58
字體:
來源:轉載
供稿:網友

開發工具:VS2008

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

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

在用C#創建COM時,一定要記住以下幾點:

1:所要導出的類必須為公有;

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

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

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

現在我們開始正題:

一、新建一個Visual C#工程(習慣這種叫法了,現在應該叫解決方案)。

選擇類型“類庫”;我就叫MyCom吧。

二、編寫導出接口。

為了大家理解方便,我僅一加法操作舉例。如下:

復制代碼 代碼如下:

[Guid("154BD6A6-5AB8-4d7d-A343-0A68AB79470B")]

    public interface MyCom_Interface

    {

        [DispId(1)]

        int Add(int a, int b);

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

[DispId(1)]為函數的標識。如果有多個函數可相應的在函數前面加[DispId(2)], [DispId(3)]…

三、創建事件接口。

復制代碼 代碼如下:

[Guid("D11FEA37-AC57-4d39-9522-E49C4F9826BB"),

InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]

public interface MyCom_Events

{

}

Guid同二,不多說

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

四、創建具體類:

復制代碼 代碼如下:

[Guid("2E3C7BAD-1051-4622-9C4C-215182C6BF58"),

ClassInterface(ClassInterfaceType.None),

ComSourceInterfaces(typeof(MyCom_Events))]

public class Class1 : MyCom_Interface

{

public int Add(int a, int b)

{

return a + b;

}

}

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

復制代碼 代碼如下:

using System;

using System.Runtime.InteropServices;

using System.Text;

 

namespace MyCom

{

[Guid("154BD6A6-5AB8-4d7d-A343-0A68AB79470B")]

public interface MyCom_Interface

{

[DispId(1)]

int Add(int a, int b);

}

 

[Guid("D11FEA37-AC57-4d39-9522-E49C4F9826BB"),

InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]

public interface MyCom_Events

{

 

}

 

[Guid("2E3C7BAD-1051-4622-9C4C-215182C6BF58"),

ClassInterface(ClassInterfaceType.None),

ComSourceInterfaces(typeof(MyCom_Events))]

public class Class1 : MyCom_Interface

{

public int Add(int a, int b)

{

return a + b;

}

}

}


五、大家都知道COM是需要注冊的。

注冊時要加密鑰文件.SNK。這一部就是生成SNK文件。進入VS2008命令提示符。用命令:sn

主站蜘蛛池模板: 狠狠躁夜夜躁人人爽天天天天97 | 久久99国产一区二区三区 | 中文天堂在线观看视频 | 求av网址 | 国产在线日韩 | 黄频免费在线观看 | 二区免费 | 97精品 | 欧美综合一区二区 | 国产一区二区三区视频在线观看 | 中文字幕亚洲一区二区三区 | av一级毛片| 97av在线视频 | 成人国产精品久久 | 在线免费一级片 | 国产成人一区二区三区 | 久久天堂av综合合色蜜桃网 | 四虎影视免费在线观看 | 中文字幕亚洲欧美日韩在线不卡 | 91国偷自产一区二区三区亲奶 | 久久色av| 高清av在线 | 国产激情视频网 | 姐姐在线观看动漫第二集免费 | 超碰97成人| 亚洲一区二区三区在线 | 91亚洲精华国产精华精华液 | 99精品免费视频 | av中文字幕网| 久久精品久久久久久久 | 啊v视频 | 久久久久无码国产精品一区 | 欧美日本韩国一区二区三区 | 亚洲国产自产 | 国产成人免费在线视频 | 国产一区二区三区视频在线观看 | 日韩欧美国产精品综合嫩v 午夜精品久久久久久久久 97色在线视频 | 午夜影晥 | 日韩免费在线 | 青青草视频免费在线观看 | 欧美精品一区二区三区一线天视频 |