标签:创建 xxxxx blog interface bug 复制 全局 com组件 details
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:\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
---------------------
作者:kingmax54212008
来源:CSDN
原文:https://blog.csdn.net/kingmax54212008/article/details/73604195
版权声明:本文为博主原创文章,转载请附上博文链接!
标签:创建 xxxxx blog interface bug 复制 全局 com组件 details
原文地址:https://www.cnblogs.com/guozht/p/10102160.html