2011-09-14 66 views

回答

6

首先,值得一提的是COM是一項相當古老的技術。它顯着早於.NET,它有時提供相同的功能。然而,相比普通的DLL,它有幾個優點,例如:

  1. 它沒有功能接口,但面向對象之一。您創建對象而不是調用導出的函數。
  2. 它支持系統安全設置,因此您可以通過Windows安全設置來管理對COM類的訪問。
  3. 它跨越進程邊界 - COM服務器可以在用戶的​​進程中,也可以在一個單獨的進程中。
  4. 它穿越機器邊界,又名DCOM。
  5. 它跨越語言邊界。 COM的協議是二進制的,因此每種支持它的語言都可以使用COM組件,而不管這些組件的語言是什麼。
  6. 有許多語言支持COM,並且可以在其中輕鬆創建和使用COM對象。

這只是冰山一角。儘管過時,COM在Windows中被廣泛使用。對於你來說,使用這些日子是否合適的技術是另一回事 - 這實際上取決於你的具體需求。但是如果你是一名Windows程序員,無論如何,這絕對值得熟悉。即使你不生產任何COM產品,你很可能會消費一個COM產品。

+3

+1「即使你不生產任何COM產品,你很可能會消費一個。」 –

1

您在各種情況下,如使用COM:

  1. 與MSXML3/4/6 XML API相互作用(消耗的COM對象);

  2. 嵌入Internet Explorer WebBrowser控件(使用COM對象);實現Explorer Shell擴展,如上下文菜單(編寫和使用COM對象);

  3. 實現拖放功能(寫入和消費);

  4. 使用基於Vista的文件打開/關閉對話框(消費);

  5. 使用基於Windows的功能區API(消費)。

相關問題