(60)c# com com+ dcom
一、创建COM组件
1.创建项目

2.设置使程序集可见
AssemblyInfo.cs中flase改为ture

或者
项目属性

设置可见

3.Guid生成器
在开始程序下能够找到Guid生成器
每次都能产生一个全球唯一的COM组件标识符,
GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复


4.编写程序
using System;
using System.Runtime.InteropServices; namespace ClassLibrary1
{
public class Class1
{
[Guid("7C54E43E-974E-40ab-8E01-354E0E0ADE92")]//
public interface ICom
{
[DispId()]//接口生成标志 1是自己编得号不能重复
double Add(double x, double y);
} [Guid("82DA7555-9338-40f7-87B2-344574BE361B")]
public class Com:ICom
{
public double Add(double x, double y)
{
return x + y;
}
}
}
}
4.互操作
项目属性-生成
勾选
公开一个允许 COM 对象与托管应用程序进行交互的 COM 对象
5.签名
为了使生成的COM可以在注册表示注册,需要进行强名称签名
项目属性-签名-为程序集签名-新建

不勾选使用密码
项目下会生成一个.snk文件

用管理员身份运行项目,会自动注册
不使用管理会报错

编译后注册表下会生成

并且程序下会生成tlb文件

https://docs.microsoft.com/zh-cn/dotnet/standard/assembly/sign-strong-name
在VS里引用COM的时候就会发现多出了个ClassLibrary1

6.注册组件
将生成的DLL复制到d盘根目录
用管理员启动cmd
进入对应的.net目录
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
注册
RegAsm D:\ClassLibrary1.dll /tlb:ClassLibrary1.tlb /codebase

7.调用
(1)C#好像无法用COM引入C#编写的库,需要用加载程序集的方式????

(60)c# com com+ dcom的更多相关文章
- win2003 Enterprise x64 Edtion中的DCOM服务找不到WORD应用程序
打开注册表,找到以下健值 HKEY_CLASSES_ROOT\AppID\{00020906-0000-0000-C000-000000000046} HKEY_CLASSES_ROOT\CLSID\ ...
- win10 64位专业版系统中显示32位dcom组件配置的方法
word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...
- From 202.97.60.193 icmp_seq=48 Time to live exceeded
从浙江某电信ip的服务器上 ping 大陆外某个外网地址不通,报如下信息: From 202.97.60.193 icmp_seq=48 Time to live exceeded google,百度 ...
- 60阶单群同构于A5的证明
设$G$是$60$阶的单群,我们来证明他同构于$A_5$,一个比较直观地思路是考虑群表示$\phi:G\to S(\Sigma)$,由同态基本定理得到$$G/{\rm Ker}\phi \simeq ...
- 60分钟Python快速学习(给发哥一个交代)
60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空 ...
- 实用的60个CSS代码片段
1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...
- ASP.NET 操作Excel中的DCOM配置方式
具体配置方式如下: 1. 组件服务管理窗口 在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,在组件服务->计算机->我的电脑->DCom配置->找到Microsof ...
- 60个有用CSS代码片段
1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...
- 在DCOM 中不存在WORD、EXCEL等OFFICE组件
DCOM里面没有与office相关的所有组件解决方法:先简单说下,操作步骤(项目演示完成后,补上图): Run MMC -32 File Add Remove Snap-in Component Se ...
随机推荐
- 【Python—参数】*arg与**kwargs参数的用法
在python中,这两个是python中的可变参数,*arg表示任意多个无名参数,类型为tuple;**kwargs表示关键字参数,为dict. # *允许你传入0个或任意个参数,这些可变参数在函数调 ...
- 牛逼哄哄的 API 网关是什么鬼?面试必问!
Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:aCoder2013 github.com/aCoder2013/blog/issues/35 前言 假设你正在开发一 ...
- CF1105C Ayoub and Lost Array ——动态规划
CF1105C Ayoub and Lost Array 题意:一个整数数组,满足: 1. 长度为n 2. 所有元素都在[l, r]范围内 3. 所有元素的和能被3整除给出n, l, r (1 ≤ n ...
- bfs(火星撞地球)
Meteor Shower 链接:https://ac.nowcoder.com/acm/contest/997/I来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...
- NOI Day1T1归程(Kruskal重构树+Dijkstra)
NOI Day1T1归程(Kruskal重构树+Dijkstra) 题目 洛谷题目传送门 题解 其实我不想写......,所以...... 挖个坑......我以后一定会补的 luogu的题解讲的还是 ...
- luoguP1600 天天爱跑步(NOIP2016)(主席树+树链剖分)
阅读体验: https://zybuluo.com/Junlier/note/1303550 为什么这一篇的Markdown炸了? # 天天爱跑步题解(Noip2016)(桶+树上差分 ^ 树剖+主席 ...
- bzoj1897. tank 坦克游戏(决策单调性分治)
题目描述 有这样一款新的坦克游戏.在游戏中,你将操纵一辆坦克,在一个N×M的区域中完成一项任务.在此的区域中,将会有许多可攻击的目标,而你每摧毁这样的一个目标,就将获得与目标价值相等的分数.只有获得了 ...
- 道路识别demo
最近做的道路识别一开始终于弄懂了点东西,一开始在网上找到了一个简单的道路识别的opencvsharp的版本.我觉得opencvsharp真的是一个很好的东西,它封装了比opencv更多的数据结构和库, ...
- linux驱动启动顺序
首先,我们可以查看Linux内核编译完成后的System.map文件,在这个文件中我们可以看到macb(dm9161驱动模块)链接到了dm9000驱动之前,如下所示: c03b6d40 t __ini ...
- 04.Linux-CentOS系统SSH连接问题
问题:SSH远程连接时报错 Socket error Event: 32 Error: 10053.Connection closing...Socket close.Connection close ...