(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 ...
随机推荐
- linux下的sleep()和usleep()的使用和区别
函数名: sleep头文件: #include<windows.h> // 在VC中使用带上头文件 #include<unistd.h> // ...
- JS正则表达式校验金额
//任意正整数,正小数(小数位不超过2位) var isNum=/^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/; var num = ...
- 基于Annotation的IOC 初始化
从Spring2.0 以后的版本中,Spring 也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5 中引入的一个新特性,用于简化Bean 的配置,可以取代 ...
- kvm 修改虚拟机密码
kvm 修改虚拟机密码 现在虚拟机kvm的使用很流行,为了更多的差异化环境,每个人可能拥有很多的kvm,这数量一多难免会有image的密码会忘记,相信很多人会采用kernel single user ...
- 2019牛客暑期多校训练营(第一场) - A - Equivalent Prefixes - 单调栈
A - Equivalent Prefixes - 单调栈 题意:给定两个n个元素的数组a,b,它们的前p个元素构成的数组是"等价"的,求p的最大值."等价"的 ...
- js 柯里化、深拷贝、浅拷贝
curry const sum = (a, b, c, d) => a + b + c + d const curry = fn => (judge = (...args) => a ...
- windows10安装nodejs 10和express 4
最进做一个个人博客系统,前端用到了semanticUI,但是要使用npm工具包,所以需要安装nodejs,nodejs自带npm 下载 去官网下载自己系统对应的版本,我的是windows:下载 可以在 ...
- 八、请求post、get、jsonp
1.创建个 news 组件使用 2.在module.ts 引入模块 3.在使用的“Component”中不一样.这里是 http和jsonp 4.编写get请求查看效果 (1).编写好的get请求,点 ...
- Sass-Opacity函数-rgba()函数
在前面介绍 RGB 函数一节中,还记得吗?有一个 rgba() 函数可以创建一个颜色,同时还可以对颜色修改其透明度.其可以接受两个参数,第一个参数为颜色,第二个参数是你需要设置的颜色透明值. > ...
- 【抓包工具之Fiddler】中session的请求/响应类型与图标对照表