靜態程式庫 (C++/CX)

在 通用 Windows 平臺 (UWP) app 中使用的靜態程式庫可以包含 ISO 標準 C++ 程式碼,包括 STL 類型,以及呼叫未從Windows 執行階段應用程式平臺排除的 WIN32 API。 靜態程式庫會取用Windows 執行階段元件,而且可能會建立具有特定限制的Windows 執行階段元件。

建立靜態程式庫

建立新專案的指示會根據您已安裝的 Visual Studio 版本而有所不同。 若要查看您慣用 Visual Studio 版本的檔,請使用 版本 選取器控制項。 其位於此頁面目錄頂端。

在 Visual Studio 中建立 UWP 靜態程式庫

  1. 在功能表列上,選擇 [ 檔案 > 新 > 專案 ] 以開啟 [ 建立新專案 ] 對話方塊。

  2. 在對話方塊頂端,將 [語言] 設定 為 C++ 、將 [平臺 ] 設定 [Windows ],並將 [專案類型 ] 設定 UWP

  3. 從篩選的專案類型清單中,選擇 [靜態程式庫] [通用 Windows - C++/CX], 然後選擇 [ 下一步 ]。 在下一頁中,為專案指定名稱,並視需要指定專案位置。

  4. 選擇 [建立] 按鈕以建立專案。

在 Visual Studio 2017 或 Visual Studio 2015 中建立 UWP 靜態程式庫

  1. 在功能表列上,選擇 [檔案]>[新增]>[專案]。 在 [Visual C++ > Windows 通用 ] 下 ,選擇 [靜態程式庫] [通用 Windows]。

  2. 在 [ 方案總管] 中,開啟專案的捷徑功能表,然後選擇 [ 屬性]。 在 [ 屬性 ] 對話方塊的 [組態屬性 > C/C++] 頁面上,將 [取用Windows 執行階段擴充功能 ] 設定 [是] (/ZW)。

當您編譯新的靜態程式庫時,如果您呼叫 UWP 應用程式排除的 WIN32 API,編譯器將會引發錯誤 C3861:「找不到識別碼」。若要尋找支援Windows 執行階段的替代方法,請參閱 UWP 應用程式中 的 Windows API 替代方案。

如果您將 C++ 靜態程式庫專案新增至 UWP 應用程式方案,您可能必須更新程式庫專案的屬性設定,讓 UWP 支援屬性設定為 [是 ]。 如果沒有此設定,程式碼會建置和連結,但當您嘗試驗證 Microsoft Store 的應用程式時,就會發生錯誤。 靜態程式庫必須以使用它的專案相同的編譯器設定進行編譯。

如果您使用會建立公用 ref 類別、公用介面類別或公用實值類別的靜態程式庫,連結器將會引發下列警告:

警告LNK4264: 將以 /ZW 編譯的物件檔案封存到靜態程式庫;請注意,撰寫Windows 執行階段類型時,不建議連結至包含Windows 執行階段中繼資料的靜態程式庫。

只有當靜態程式庫未在程式庫本身外部取用Windows 執行階段元件時,您才能安全地忽略警告。 如果程式庫未取用它所定義的元件,則即使公用中繼資料包含類型資訊,連結器仍可將實作優化。 這表示靜態程式庫中的公用元件會進行編譯,但不會在執行階段啟動。 基於這個理由,任何要供其他元件或應用程式取用的Windows 執行階段元件,都必須在動態連結程式庫 (DLL) 中實作。

另請參閱

執行緒和封送處理