共用方式為


逐步解說:公開 .NET 外掛程式模型

更新:2007 年 11 月

這個逐步解說示範如何擴充傳統的 Scribble MFC,以支援使用 .NET 技術的外掛程式模型。

MFC Scribble 方案會擴充至公開 .NET 物件模型。此外,範例也會公開可讓 .NET 外掛程式和 MFC Scribble 方案完美互動的外掛程式架構。

必要條件

ScribbleDotNET 範例:利用 CLR 功能延伸 Scribble 的功能

若要建置和執行這個範例

  1. 在 Visual Studio 開發環境中開啟 Scribble.sln 方案檔。

  2. 使用 [偵錯] 或 [發行] 組態來建置方案。

  3. 在 [方案總管] 下,開啟 plugins.xml 方案項目。

  4. 在 plugins.xml 檔案中,將組件項目中路徑的第一個部分變更為對應於用來建置的組態。例如,若您使用 [偵錯] 組態進行建置,請將 "VBShapes.dll" 變更為 "Debug\VBShapes.dll",並將 "CSPenColor.dll" 變更為 "Debug\CSPenColor.dll"。

  5. 執行內建可執行檔。

  6. 從功能表列中選取 [外掛程式]。

    1. 選取 [繪製圖案] 功能表項目。如此將會執行 VBShapes 外掛程式,此外掛程式會繪製出三個不同顏色的方塊外框。
  7. 從功能表列中選取 [外掛程式]。

    1. 選取 [變更畫筆顏色] 功能表項目。如此將會執行 CSPenColor 外掛程式,此外掛程式可讓您透過 .Net 色彩對話方塊選取畫筆顏色。

運作的方式

這個範例是在兩個主要部分中實作:

  1. 公開物件模型供外掛程式撰寫者使用

    會公開兩個主要介面以實作外掛程式模型 (如需這些介面的定義,請參閱「ScribbleApp 專案」):

    • IScribbleApp – 這個介面會公開一組功能,讓外掛程式撰寫者與執行中的 Scribble 應用程式互動。這個介面是由 Scribble 所實作 (請參閱 Scribble 專案中的 ScribbleApp.cpp),而且所實作介面的執行個體 (Instance) 會傳遞到 IScribblePlugin 的 Run() 成員函式,這個部分將於下面內容中加以討論。

    • IScribblePlugin – 這個介面是由外掛程式撰寫者所實作。外掛程式撰寫者將會使用 IScribbleApp 所公開的功能來實作外掛程式。

  2. 擴充基底 Scribble 應用程式來尋找、載入和執行外掛程式

    • 首先,會剖析包含有要載入的外掛程式清單的 XML 檔案。每一個找到的外掛程式都會進行載入,而且會透過使用 System.Reflection,驗證其具有正確的型別。更精確的說,我們會使用反映 (Reflection) 來搜尋所有由該外掛程式模組公開的型別,並確定其中一個型別會實作我們所公開的 IPlugin 介面。這項實作可在 Scribble 專案的 PluginBld.cpp 中找得到。

    • 然後,CScribbleApp 會使用 PluginBld.cpp 中實作的常式,來取得所有找到的外掛程式清單。針對此清單中的每個外掛程式,都會在 [外掛程式] 功能表下動態建立功能表項目。當使用者從 [外掛程式] 選取功能表項目時,適當的外掛程式便會執行。

所使用的技術

  • 使用 XML 來指定外掛程式的位置

  • 使用反映來驗證在 XML 檔案中指定的外掛程式是否為適當的類型

  • 為建立外掛程式定義物件模型

  • 在 C++ 應用程式中載入並執行外掛程式

請參閱

工作

SCRIBBLE 範例:MFC MDI 繪圖應用程式