缺點
同進程伺服器提供物件處理程式的速度和大小優勢,以及本地伺服器的編輯功能。 那麼,為什麼您選擇將 OLE 應用程式實作為本地伺服器,而不是同進程伺服器? 有幾個原因:
- 安全性。 只有本地伺服器與客戶端的位址空間隔離。 進程內伺服器會共用用戶端的位址空間和進程內容,因此在發生錯誤或惡意程序設計時,可能會較不健全。
- 資料粒度。 本地伺服器可以跨許多不同的用戶端裝載其物件的多個實例,以多個用戶端共用對象之間的伺服器狀態,如果實作為同進程伺服器,這僅僅是載入每個用戶端的 DLL,就很難或不可能。
- 相容性。 如果您選擇實作同進程伺服器,您可以放棄與 OLE 1 的相容性,而 OLE 1 不支援這類伺服器。 對於許多開發人員來說,這不是一個考慮,但如果是,則這是關鍵考慮。
- 無法支持連結。 同進程伺服器無法做為連結來源。 由於 DLL 本身無法執行,因此無法建立要連結的檔案物件。
儘管有這些缺點,但同進程伺服器對於其速度和大小而言可能是絕佳的選擇,如果它符合所有其他需求。