C#创建COM组件

1,Application Properties Setting

注:Target framework如果不是代码需要,尽量选择低版本,便于支持在更多版本的操作系统;

Output Type选择Class Library,因为我们的目的是将一个封装好的dll注册到系统中。

2,Bulid Properties Setting

注:Platform target有两种,x86 / x64,区别在于注册时使用的工具和使用COM组件的软件限制。举个例子,如果你的vba程序要用到这个组件,而你的Excel是32位的,那么你就需要将Platform target设置成x86,否则将不能使用;反之如果你的Excel事64位的,就需要将Platform target设置成x64,这样创建的组件才能被使用。

如果勾选了Register for COM interop,Microsoft Visual Studio 可以自动将Bulid好的dll注册到系统中,但需要使用Administrator权限。

3,Signing Setting

注:这一步很关键,必须创建签名。

4,Code

namespace MYASSEMBLY
{
    [ComVisible(true)]   
    [Guid("B5A98418-0781-4F75-6BE48A9CC278")]
    [ProgId("MYASSEMBLY.TestAssembly")]
    public class TestAssembly
    {
        public string GetData(data)
        {
            return data;
         }
    }
}

5,注册。如果你已经在第3步选择了Register for COM interop,在bulid完成之后,就已经自动注册完成了。但如果我们需要把这个dll注册到另外一台计算机上,那就要手动使用CMD命令注册了。这里分为32位注册和64位注册两种方式:

C:
cd "C:\Windows\Microsoft.NET\Framework\v2.0.20727"
regasm "D:\Project\MYASSEMBLY\MYASSEMBLY.dll"
cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin"
gacutil /i "D:\Project\MYASSEMBLY\MYASSEMBLY.dll"
C:
cd "C:\Windows\Microsoft.NET\Framework64\v2.0.20727"
regasm "D:\Project\MYASSEMBLY\MYASSEMBLY.dll"
cd "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin"
gacutil /i "D:\Project\MYASSEMBLY\MYASSEMBLY.dll"

6,使用。用一个最简单的vbs.script来测试。

dim obj
set obj = CreateObject("MYASSEMBLY.TestAssembly")
Msgbox obj.GetData("Hello")

 

转载于:https://www.cnblogs.com/jasonery/p/7987050.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值