一个想要了解更多关于Windows Internals的人,阅读“Windows Internals”一书,并想进入驱动程序开发,学习COM编程是一个好主意吗?
我应该深入了多少?考虑到上述情况,只需了解基础知识或理解是否需要进一步理解。
答案 0 :(得分:7)
COM对内核模式驱动程序开发也没有太多价值,但它对用户模式驱动程序可能有用。例如,DirectShow就是COM,甚至在内核模式DShow过滤器中也使用了轻量级COM模拟。
有很多代码是COM,遗留代码需要数年或数十年才能消失。但更重要的是,IMO是一个事实,当从C / C ++使用时,.NET程序集看起来像COM对象,所以我认为如果你打算继续编写C / C ++代码,知道COM 仍然有一些价值
如果您计划切换到C#,Java或其他几种语言中的一种 - 无指针(从这里的问题判断为SO)大多数程序员已采用,那么不,不值得机会成本
答案 1 :(得分:4)
COM在当前的开发中使用不多,但仍有大量的软件仍在使用它。只需了解基础知识就足够了。
答案 2 :(得分:4)
Windows设备驱动程序与COM无关。你可以安全地不知道它。
答案 3 :(得分:1)
一方面,COM似乎是Microsoft在本机和托管(.Net)代码之间进行互操作的首选方法。说实话,.Net确实能很好地处理COM。
另一方面,在Lino Tadros的不朽词语中:
COM就像吸烟:如果你还没有开始,你现在就不应该开始,如果你已经这样做了,是时候停止了。
就个人而言,当我需要与现有COM对象(如MSXML)交谈时,或者如果我绝对需要从本机代码与.Net程序集进行通信时,我会使用它,而非托管导出这样的东西不是一种选择,但是不认为它对新开发有用。