38、.NET与COM互操作性及Windows API调用全解析

.NET与COM互操作性及Windows API调用全解析

1. 从COM调用.NET组件

在.NET中调用COM组件相对容易,反之,在COM环境中调用.NET程序集也并不复杂,Visual Studio .NET IDE对此提供了全面支持。不过,为了让.NET类能被COM客户端正确使用,需要添加一些额外代码。

要使基于COM的应用程序能够使用.NET程序集,需要创建COM可调用包装器(CCW)。可以通过以下两种方式实现:
- 在项目属性对话框中勾选相应选项,让Visual Studio .NET创建包含CCW的程序集。
- 使用 tlbexp.exe Regasm.exe 命令行实用工具来创建。

创建好包含CCW代码的程序集后,需将其注册到系统注册表中,使其看起来像一个COM组件,这样就能在VB6 IDE中添加对它的引用。

需要注意的是,.NET默认会在应用程序所在目录或其目录树中查找程序集。为了让COM客户端应用程序能够找到程序集,有两种方法:
- 将CCW程序集放入全局程序集缓存(GAC),类似于注册.NET程序集。
- 在 tlbexp 命令行实用工具中使用 /codebase 开关,这种方法更简单,因为它会让COM直接使用.NET程序集所在的位置。

Visual Studio .NET采用了第二种方法,在编译标记为通过COM互操作使用的程序集时,会自动使用 /codebase 开关将程序集注册到COM,使任何COM客户端应用程序都能使用该程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值