我不是组件对象模型(COM)的专家,但据我所知,它的工作原理如下: 程序A(“服务器”程序)公开COM接口让我们说通过TLB文件。 客户端程序使用此接口并调用它的函数(所有底层的东西都是免费为您完成的)。 因此,在这种情况下,“服务器”程序正在运行,“客户端”程序使用COM对象与“服务器”进行通信。 每个程序(进程)都有自己的地址空间。 现在有了MSXML,它有点不同。 根据我的理解,msxmlX.dll是一个COM DLL,但是当我在运行时隐式链接它(使用msxmlX.h和msxmlX.lib)时,它被加载到与我的可执行文件相同的内存空间。 因此,在这种情况下,当显然没有IPC进行时使用WHY COM对象(msxml.dll和“我的应用程序”都使用相同的内存并且可以“通信”就像调用函数一样简单)??? p>
答案 0 :(得分:1)
您可以在进程中,进程外或完全在另一台计算机上创建COM对象。选择取决于您的要求。
COM旨在使软件组件可重用且与语言无关。 它不仅仅是一种促进IPC的机制。