想写一篇关于.net下COM工作原理的文章
2006-12-11 17:23
351 查看
今天想写一篇关于.net下COM工作原理的文章。花了大概3个小时,文章也写的差不多了,可是越写到后来越发现自己的观点以及想法越错误。
边写边查MSDN,最后不得不放弃发布这篇文章了。虽然花了好几个小时,最后什么也没有,但还是学到了不少东西。
总结一下.net下是如何实现与COM(或者ActiveX)交互的吧。
记得也是在博客园上看到有一篇文章关于用C#写ActiveX的文章,与其说是.net写ActiveX不如说是.net如何使用它们。
首先应该明确以下几个问题:
1、在.net平台下,没有真正的COM或者ActiveX,它们都只是.net下的一个封装。
2、它的封装是通过COM Interop对托管对象向传统COM进行一个接口暴露。反之,也是通过COM Interop对传统COM进行一个.net包装,使.net可以像访问普通对象一样的访问传统COM。而传统的COM仍然要在目标机器上注册。
3、不管是.net访问传统COM,还是通过COM访问.net对象,最终都是离不开.net 平台的。
4、通过传统的COM来访问.net对象,其实是用.net下的几个工具,先从.net下的对象中取得一些源数据,转化成COM数据类型,然后注册给Windows,同时也可以暴露给其它应用程序(如C++,当然它是二进制的,但只是一些数据和接口的定义,不是真正的代码)。当COM对象来生成.net对象时,用户是不知道他所要的对象是从哪来的,其实是.net的COM Interop生成,交给传统的COM,然后由COM返回经过COM Interop封装后的.net对象。当然,用户还是把它当传统COM来使用,.net为我们完成了数据转化工作。
有兴趣的读者可以查一下MSDN里的托管与非托管代码的混合编程这方面的知识,内容还是很多的。
大概就总结这些,有机会还是把那篇文章写完,说真的,辛辛苦苦的写了好几个小时,结果理解都是有偏差的,真还让人有点郁闷。还好及时发现,不至于发表出来䚶误人子弟。多写些文章还有是帮助的。
边写边查MSDN,最后不得不放弃发布这篇文章了。虽然花了好几个小时,最后什么也没有,但还是学到了不少东西。
总结一下.net下是如何实现与COM(或者ActiveX)交互的吧。
记得也是在博客园上看到有一篇文章关于用C#写ActiveX的文章,与其说是.net写ActiveX不如说是.net如何使用它们。
首先应该明确以下几个问题:
1、在.net平台下,没有真正的COM或者ActiveX,它们都只是.net下的一个封装。
2、它的封装是通过COM Interop对托管对象向传统COM进行一个接口暴露。反之,也是通过COM Interop对传统COM进行一个.net包装,使.net可以像访问普通对象一样的访问传统COM。而传统的COM仍然要在目标机器上注册。
3、不管是.net访问传统COM,还是通过COM访问.net对象,最终都是离不开.net 平台的。
4、通过传统的COM来访问.net对象,其实是用.net下的几个工具,先从.net下的对象中取得一些源数据,转化成COM数据类型,然后注册给Windows,同时也可以暴露给其它应用程序(如C++,当然它是二进制的,但只是一些数据和接口的定义,不是真正的代码)。当COM对象来生成.net对象时,用户是不知道他所要的对象是从哪来的,其实是.net的COM Interop生成,交给传统的COM,然后由COM返回经过COM Interop封装后的.net对象。当然,用户还是把它当传统COM来使用,.net为我们完成了数据转化工作。
有兴趣的读者可以查一下MSDN里的托管与非托管代码的混合编程这方面的知识,内容还是很多的。
大概就总结这些,有机会还是把那篇文章写完,说真的,辛辛苦苦的写了好几个小时,结果理解都是有偏差的,真还让人有点郁闷。还好及时发现,不至于发表出来䚶误人子弟。多写些文章还有是帮助的。
相关文章推荐
- 转一篇本站关于自定义c实现com的帖子,文章很不错,翻译的也很给力
- 一篇很棒的关于.NET中栈和堆的比较的文章
- 发现一篇关于.NET 2.0中关于事务命名空间的好文章
- 转一篇本站关于自定义c实现com的帖子,文章很不错,翻译的也很给力
- 转一篇文章关于.Net的Invoke和BeginInvoke 写得挺好!
- 转载一篇不错的关于.NET中内存使用的文章
- 转载一篇关于“clock skew”的文章
- 转载一篇关于linux 监视进程的文章...
- 关于一篇描述压力的文章 来自EF教育
- 一篇关于Vim详细介绍的文章
- 关于Xerces-C++的一篇介绍文章
- (转)写的很好的一篇关于解释Policy and traits的文章
- 关于extern "C"的一篇很好的文章
- 一篇关于python对文件操作讲解的文章
- 关于0基础磁盘管理(gpt UEFI...)最好的一篇文章(来自gentoo linux)
- 推荐一篇 关于REST 和 SOAP区别的文章
- 好东西大家分享: 一篇关于Delphi与MVC的文章的翻译
- 介绍一篇关于session的好文章,写的很详细(jsp-servlet 技术)
- .Net技术文章 -- www.willsft.com -- 中国最专业的DotNet技术社区!
- 介绍一篇关于session的好文章