DLL (C++/CX)
您可以使用 Visual Studio 來建立標準 Win32 DLL 或 Windows 執行階段元件 DLL,這些 DLL 可由 通用 Windows 平台 (UWP) 應用程式取用。 使用 Visual Studio 版本或比 Visual Studio 2012 更早的 Microsoft C++ 編譯程式所建立的標準 DLL,可能無法在 UWP 應用程式中正確載入,而且可能無法在 Microsoft 市集中通過應用程式驗證測試。
在幾乎所有情況下,當您想要建立 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 執行階段元件。
針對將要使用 DLL 的專案開啟捷徑功能表,然後選擇 [ 屬性]。 在 [ 一般屬性 ] 頁面上,選擇 [ 加入新參考 ] 按鈕。
Windows 執行階段元件包含 DLL 檔案和包含元數據的 .winmd 檔案。 這些檔案通常位於相同的資料夾中。 在 [ 加入參考 ] 對話方塊的左窗格中選擇 [ 瀏覽 ] 按鈕,然後巡覽至 DLL 及其 .winmd 檔案的所在位置。 如需詳細資訊,請參閱 擴充功能 SDK。
您可以為不會取用或產生公用 Windows 執行階段 類型,並從UWP app取用C++程式代碼建立標準 DLL。 當您只想移轉現有的 DLL 以在此版本的 Visual Studio 中編譯,但不要將程式代碼轉換成 Windows 執行階段 元件專案時,請使用 Dynamic-Link 連結庫 (DLL) 項目類型。 當您進行下列步驟時,這個 DLL 將會隨 .appx 封裝中的應用程式可執行檔一起部署。
在功能表欄上,選擇 [檔案]、[新增]、[專案],然後選取 [動態連結庫][DLL] 範本。
輸入專案的名稱,然後選擇 [ 確定 ] 按鈕。
新增程式碼。 請確定為您要匯出的函式使用
__declspec(dllexport)
,例如__declspec(dllexport) Add(int I, in j);
。新增
#include winapifamily.h
以包含適用於 UWP app 的 Windows SDK 頭檔,並設定巨集WINAPI_FAMILY=WINAPI_PARTITION_APP
。
針對將要使用 DLL 的專案開啟捷徑功能表,然後選擇 [ 屬性]。 在 [ 一般屬性 ] 頁面上,選擇 [ 加入新參考 ] 按鈕。
在左窗格中選取 [ 方案],然後在右窗格中選取適當的核取方塊。
在您的原始程式碼檔中,視需要為 DLL 標頭檔新增
#include
陳述式。
將 DLL 檔、.lib 檔和標頭檔複製並貼至已知位置,例如您目前的專案資料夾。
針對將要使用 DLL 的專案開啟捷徑功能表,然後選擇 [ 屬性]。 在 [ 組態屬性]、[ 連結器]、[ 輸入 ] 頁面上,將 .lib 檔新增為相依性。
在您的原始程式碼檔中,視需要為 DLL 標頭檔新增
#include
陳述式。
建立 DLL (通用 Windows) 類型的專案,並將現有的原始程式碼新增至其中。
新增
#include winapifamily.h
以包含適用於 UWP app 的 Windows SDK 頭檔,並設定巨集WINAPI_FAMILY=WINAPI_PARTITION_APP
。在您的原始程式碼檔中,視需要為 DLL 標頭檔新增
#include
陳述式。