有人想了解更多关于Windows Internals,正在阅读《Windows Internals》一书,并希望进入驱动程序开发领域。那么学习COM编程是一个好主意吗?
需要深入学习到什么程度?仅了解基础知识还是需要深入掌握,考虑到上述情况。
有人想了解更多关于Windows Internals,正在阅读《Windows Internals》一书,并希望进入驱动程序开发领域。那么学习COM编程是一个好主意吗?
需要深入学习到什么程度?仅了解基础知识还是需要深入掌握,考虑到上述情况。
对于内核模式驱动程序开发来说,COM的价值不是很大,但对于用户模式驱动程序可能会有潜在的用处。例如,DirectShow就是COM,甚至在内核模式DShow过滤器中还使用了一种轻量级的COM类比。
现有许多代码都是基于COM的,而遗留代码需要数年甚至数十年才能消失。但我认为更重要的是,当从C/C++中使用.NET程序集时,它们看起来像是COM对象,因此如果您打算继续编写C/C++代码,了解COM仍然具有一定的价值。
如果您计划转向C#、Java或其他没有指针的语言(根据SO上的问题,大多数程序员已经采用这些语言),那么了解COM并不值得机会成本。
COM在当前开发中使用不多,但仍有大量软件在使用它。只需了解基础知识即可。
Windows设备驱动程序与COM无关。您可以安全地忽略它。
个人而言,我会在需要与现有的COM对象(如MSXML)通信时使用它,或者在绝对需要从本地代码中访问.Net程序集而无法使用非托管导出等选项时使用它,但并不认为它对新开发有用。COM就像吸烟:如果你还没有开始,那么现在不应该开始;如果你已经在做了,那么现在是时候戒掉了。