.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客户端应用程序都能使用该程
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



