閱讀英文

共用方式為


DLL (C++/CX)

您可以使用 Visual Studio 來建立標準 Win32 DLL 或 Windows 執行階段元件 DLL,這些 DLL 可由 通用 Windows 平台 (UWP) 應用程式取用。 使用 Visual Studio 版本或比 Visual Studio 2012 更早的 Microsoft C++ 編譯程式所建立的標準 DLL,可能無法在 UWP 應用程式中正確載入,而且可能無法在 Microsoft 市集中通過應用程式驗證測試。

Windows 執行階段元件 DLL

在幾乎所有情況下,當您想要建立 DLL 以用於 UWP app 時,請使用該名稱的專案範本,將其建立為 Windows 執行階段元件。 您可以為具有公用或私人 Windows 執行階段 類型的 DLL 建立 Windows 執行階段元件專案。 您可以從任何 Windows 執行階段 相容語言撰寫的應用程式存取 Windows 執行階段元件。 根據預設,Windows 執行階段元件專案的編譯程式設定會使用 /ZW 參數。 .winmd 檔案必須具有根命名空間的相同名稱。 例如,名為 A.B.C.MyClass 的類別必須在名為 A.winmd、A.B.winmd 或 A.B.C.winmd 的中繼資料檔案中定義,才能執行個體化。 DLL 的名稱不需符合 .winmd 檔案名稱。

如需詳細資訊,請參閱 在 C++ 中建立 Windows 執行階段元件

在項目中參考第三方 Windows 執行階段元件二進位檔

  1. 針對將要使用 DLL 的專案開啟捷徑功能表,然後選擇 [ 屬性]。 在 [ 一般屬性 ] 頁面上,選擇 [ 加入新參考 ] 按鈕。

  2. Windows 執行階段元件包含 DLL 檔案和包含元數據的 .winmd 檔案。 這些檔案通常位於相同的資料夾中。 在 [ 加入參考 ] 對話方塊的左窗格中選擇 [ 瀏覽 ] 按鈕,然後巡覽至 DLL 及其 .winmd 檔案的所在位置。 如需詳細資訊,請參閱 擴充功能 SDK。

標準 DLL

您可以為不會取用或產生公用 Windows 執行階段 類型,並從UWP app取用C++程式代碼建立標準 DLL。 當您只想移轉現有的 DLL 以在此版本的 Visual Studio 中編譯,但不要將程式代碼轉換成 Windows 執行階段 元件專案時,請使用 Dynamic-Link 連結庫 (DLL) 項目類型。 當您進行下列步驟時,這個 DLL 將會隨 .appx 封裝中的應用程式可執行檔一起部署。

在 Visual Studio 中建立標準 DLL

  1. 在功能表欄上,選擇 [檔案]、[新增]、[專案],然後選取 [動態連結庫][DLL] 範本。

  2. 輸入專案的名稱,然後選擇 [ 確定 ] 按鈕。

  3. 新增程式碼。 請確定為您要匯出的函式使用 __declspec(dllexport) ,例如 __declspec(dllexport) Add(int I, in j);

  4. 新增 #include winapifamily.h 以包含適用於 UWP app 的 Windows SDK 頭檔,並設定巨集 WINAPI_FAMILY=WINAPI_PARTITION_APP

若要從相同的方案參考標準 DLL 專案

  1. 針對將要使用 DLL 的專案開啟捷徑功能表,然後選擇 [ 屬性]。 在 [ 一般屬性 ] 頁面上,選擇 [ 加入新參考 ] 按鈕。

  2. 在左窗格中選取 [ 方案],然後在右窗格中選取適當的核取方塊。

  3. 在您的原始程式碼檔中,視需要為 DLL 標頭檔新增 #include 陳述式。

若要參考標準 DLL 二進位檔

  1. 將 DLL 檔、.lib 檔和標頭檔複製並貼至已知位置,例如您目前的專案資料夾。

  2. 針對將要使用 DLL 的專案開啟捷徑功能表,然後選擇 [ 屬性]。 在 [ 組態屬性]、[ 連結器]、[ 輸入 ] 頁面上,將 .lib 檔新增為相依性。

  3. 在您的原始程式碼檔中,視需要為 DLL 標頭檔新增 #include 陳述式。

若要移轉現有的 Win32 DLL 以取得 UWP 應用程式相容性

  1. 建立 DLL (通用 Windows) 類型的專案,並將現有的原始程式碼新增至其中。

  2. 新增 #include winapifamily.h 以包含適用於 UWP app 的 Windows SDK 頭檔,並設定巨集 WINAPI_FAMILY=WINAPI_PARTITION_APP

  3. 在您的原始程式碼檔中,視需要為 DLL 標頭檔新增 #include 陳述式。