我的经验是,这是一个完全混乱,并导致难以诊断和修复非黑带Windows开发人员的问题。
使COM闪耀的用例是什么?
答案 0 :(得分:7)
COM在很大程度上透明地提供了本地(对象到对象)和远程(机器到机器,进程到进程)通信。稍微小心一点,您的代码可以愉快地处理托管在同一内存空间中任何位置的对象。
虽然这种抽象有问题(不同情况的动态变化非常不同),并且使用二进制格式挑战互操作性,但确实有效。并且工作得很好(考虑Visual Basic启用的所有业务应用程序)。
答案 1 :(得分:6)
很难将产品称为最流行的操作系统之一的主干,如果它的应用程序不是很有用,那么大多数都是如此。
答案 2 :(得分:3)
实际上,它已经被广泛使用多年。许多相互集成和交互的应用程序都依赖于COM技术。我想甚至.NET库都将自己注册为COM。
至于一团糟,我不同意这里。这很复杂,但没有一团糟。当然,您需要对OO,接口,指针,低级编程以及构成优秀C ++程序员的大脑模型有一个很好的理解。
答案 3 :(得分:1)
使COM闪耀的用例是什么?
不同语言之间的互操作(例如C ++和Visual Basic)
不同进程之间的互操作(例如OLE,在Word文档中嵌入Excel电子表格)
不同供应商之间的互操作(例如,如果你想编写一个插入Windows资源管理器的shell扩展,你可以使用COM来实现,因为资源管理器声明了一个用于调用它的扩展的COM接口)。
答案 4 :(得分:0)
答案 5 :(得分:0)
COM仍广泛用于GIS应用程序。它是某些应用程序的支柱,例如ArcMap(ESRI)及其用于Spatial Objects的庞大编程API。
正如大家所说的那样,这很复杂,但是一旦你掌握了一些关键概念,就可以更容易地为它开发。
.NET支持COM对象。
答案 6 :(得分:0)
虽然不是为它设计的(当然)COM已经成为将本机代码(例如C ++)与.NET接口的最佳方式。
答案 7 :(得分:0)
名称COM或实际上OLE总是和我一起磨。因为我没有将其视为对象技术 - COM对象无法继承!我认为这是一种包装技术....但M $使用了“对象”这个名字来使它看起来比它更多。
NeXT的Portable Distributed Objects同时提供的其他技术使它看起来很原始。
答案 8 :(得分:-1)
大多数问题是因为开发人员并不真正了解COM。 但COM很难理解微软必须重新设计另一个类似的平台,即.Net。