zoukankan      html  css  js  c++  java
  • C# 生成 COM控件

    C#编写COM组件 
    软件:Microsoft VisualStudio 2010

    1、新建一个类库项目

    2、将Class1.cs改为我们想要的名字(例如:MyClass.cs)

    问是否同时给类改名,确定

    3、修改Properties目录下面的AssemblyInfo.cs

    ComVisible属性设置为true


    改成下图

    4、项目->MyLib属性

    切换到“生成”选项卡,在底部位置,勾选“为COM互操作注册”

    切换到“签名”选项卡

      勾选“为程序集签名”

      在下面的下拉框里面选择“<新建...>”

    5、在弹出的对话框里面,输入MyKey。。或者随便取个名字

      去掉“使用密码保护文件(P)”的选项

    6、开始编码,任何一个公开的类,必须有一个 I开通的接口定义

    C# Code

    [csharp] view plain copy
     
    using System;  
    using System.Collections.Generic;  
    using System.Text;  
    using System.Runtime.InteropServices;  
      
    namespace MyLib  
    {  
        [ComVisible(true)]  
        [Guid("35A5CE1E-551C-41EC-81D4-005318550119")]  
        public interface IMyClass  
        {  
            void Initialize();  
            void Dispose();  
            int Add(int x, int y);  
        }  
        [ComVisible(true)]  
        [Guid("F0239BF9-0A6E-49A6-8853-BADE1B95E66F")]  
        [ProgId("MyLib.MyClass")]  
        public class MyClass : IMyClass  
        {  
            public void Initialize()  
            {  
                // nothing to do  
            }  
      
            public void Dispose()  
            {  
                // nothing to do  
            }  
      
            public int Add(int x, int y)  
            {  
                return x + y;  
            }  
        }  
    }  

    7、GUID属性里面的那个字符串,在“工具”菜单下面,“创建 GUID”

      选择 [GUID(“xxxxxxxxxx-xxxx….xxxxxx”)],然后复制


    8、编译&注册

    编译:生成->生成解决方案(F6)。如果没有生成.tlb文件,需要用管理员身份打开Visual Studio 2010,然后重新编译

    注册过程:

    开始→所有程序→Microsoft Visual Sutdio 2010→Visual Studio Tools→Visual Studio命令提示符(2010)〖注:以管理员身份运行〗

    在命令提示符下面,进入Dll所在的目录

    C:Windowssystem32>cd/d E:MyLibMyLibinDebug

    用 gacutil /i MyLib.dll 将这个DLL加入的全局缓存里

    E:MyLibMyLibinDebug>gacutil/i mylib.dll

    然后用 regasm MyLib.dll 注册这个dll

    E:MyLibMyLibinDebug>regasmmylib.dll

    ---------------------
    作者:kingmax54212008
    来源:CSDN
    原文:https://blog.csdn.net/kingmax54212008/article/details/73604195
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    输入框实时验证是否跟后台数据重复,重复的话在输入框下边提示该名称已存在
    表格某一列内容需要占据两列宽度,如何设置样式以及只给某一列添加边框
    Dropdown 下拉菜单 修改为 select 框样式,在框内显示图片,并且二次确认,选取消依旧显示原来选项
    常用的正则表达式
    vue element UI 添加一行表单
    Cannot read property 'reduce' of null 报错解决
    vue 打包卡住的问题
    vue 安装scss 报错 TypeError: this.getResolve is not a function 解决
    解压版mysql安装(windows版)
    外部系统调用星空接口
  • 原文地址:https://www.cnblogs.com/guozht/p/10102160.html
Copyright © 2011-2022 走看看