频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
C#编写COM组件解析
2018-08-09 15:37:07           
收藏   我要投稿

软件: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


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:\Windows\system32>cd/d E:\MyLib\MyLib\bin\Debug

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

E:\MyLib\MyLib\bin\Debug>gacutil/i mylib.dll

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

E:\MyLib\MyLib\bin\Debug>regasmmylib.dll

\

\

PHP调用com示例

Add('22','33')";
 	}catch (Exception $e){
 		print_r($e->getMessage());
 	}
>
点击复制链接 与好友分享!回本站首页
上一篇:token session cookie的理解
下一篇:Android framework编译常见错误汇总
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站