首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用C/C++以外的语言制作COM?

问如何用C/C++以外的语言制作COM?
EN

Stack Overflow用户
提问于 2010-08-11 12:54:24
回答 2查看 129关注 0票数 1

我注意到MIDL.exe只为C/C++生成头文件(_h.h)和GUID文件(_i.c)。它便于在C/C++中创建COM。

如果我想用VB或其他语言创建COM怎么办?首先要用MIDL语言定义接口,然后用MIDL.exe进行编译。那么,其他语言如何利用MIDL.exe的输出呢?

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-11 14:21:35

像VB6和.NET这样的运行时环境将COM视为一流的公民,不需要midl.exe提供的管道。VB6类自动是实现IDispatch的COM coclass。.NET具有类似于ComVisible的属性。它们的运行时环境实现所需的胶水。

在C++中没有这样的胶水,你必须自己写。或者利用像ATL这样的类库。但是,它确实允许超越oleauto的限制,例如实现从IUnknown派生的接口和创建自定义封送处理程序。

票数 3
EN

Stack Overflow用户

发布于 2010-08-11 14:21:14

如果您想用VB.NET编写COM组件,您将不会在MIDL中定义接口。相反,您将按照通常的.NET方式编写托管接口和实现该接口的类。然后将类和接口设置为ComVisible,并安排项目为结果程序集创建Com可调用包装器。

请记住,以这种方式创建的内容将依赖于.NET框架。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3458436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档