Sdílet prostřednictvím


Statické knihovny (C++/CX)

Statická knihovna používaná v aplikaci Univerzální platforma Windows (UPW) může obsahovat kód C++ standardu ISO, včetně typů STL, a také volání rozhraní API Win32, která nejsou vyloučena z platformy aplikace prostředí Windows Runtime. Statická knihovna využívá prostředí Windows Runtime komponenty a může vytvářet prostředí Windows Runtime součásti s určitými omezeními.

Vytváření statických knihoven

Pokyny k vytvoření nového projektu se liší podle toho, jakou verzi sady Visual Studio máte nainstalovanou. Pokud chcete zobrazit dokumentaci pro upřednostňovanou verzi sady Visual Studio, použijte ovládací prvek selektoru verzí . Nachází se v horní části obsahu na této stránce.

Vytvoření statické knihovny UPW v sadě Visual Studio

  1. Na řádku nabídek zvolte Soubor>nový>projekt a otevřete dialogové okno Vytvořit nový projekt.

  2. V horní části dialogového okna nastavte jazyk na C++, nastavte platformu pro Windows a nastavte typ projektu na UPW.

  3. V filtrovaném seznamu typů projektů zvolte Static Library (Universal Windows – C++/CX) a pak zvolte Další. Na další stránce zadejte název projektu a v případě potřeby zadejte umístění projektu.

  4. Zvolte tlačítko Vytvořit a vytvořte projekt.

Vytvoření statické knihovny UPW v sadě Visual Studio 2017 nebo Visual Studio 2015

  1. Na řádku nabídek zvolte Soubor>nový>projekt. V části Visual C++>Windows Universal zvolte Static Library (Universal Windows) (Universal Windows).

  2. V Průzkumník řešení otevřete místní nabídku projektu a pak zvolte Vlastnosti. V dialogovém okně Vlastnosti na stránce Vlastnosti>konfigurace C/C++ nastavte Možnost Využití rozšíření prostředí Windows Runtime na Ano (/ZW).

Když zkompilujete novou statickou knihovnu, zavoláte rozhraní API Win32, které je vyloučené pro aplikace pro UPW, kompilátor vyvolá chybu C3861, identifikátor nebyl nalezen. Pokud chcete vyhledat alternativní metodu podporovanou pro prostředí Windows Runtime, přečtěte si téma Alternativy k rozhraním API pro Windows v aplikacích pro UPW.

Pokud do řešení aplikace pro UPW přidáte projekt statické knihovny C++, možná budete muset aktualizovat nastavení vlastností projektu knihovny tak, aby byla vlastnost podpory UPW nastavená na Ano. Bez tohoto nastavení se kód sestaví a odkazuje, ale při pokusu o ověření aplikace pro Microsoft Store dojde k chybě. Static lib by se měl zkompilovat se stejným nastavením kompilátoru jako projekt, který ho využívá.

Pokud používáte statickou knihovnu, která vytváří veřejné třídy, třídy veřejného ref rozhraní nebo třídy veřejných hodnot, linker vyvolá toto upozornění:

upozornění LNK4264: archivace souboru objektu kompilovaného pomocí /ZW do statické knihovny; všimněte si, že při vytváření prostředí Windows Runtime typů se nedoporučuje propojit se statickou knihovnou, která obsahuje prostředí Windows Runtime metadata.

Upozornění můžete bezpečně ignorovat pouze v případě, že statická knihovna nevytová prostředí Windows Runtime komponent, které jsou spotřebovány mimo samotnou knihovnu. Pokud knihovna nepoužívá komponentu, kterou definuje, může linker optimalizovat implementaci, i když veřejná metadata obsahují informace o typu. To znamená, že veřejné komponenty ve statické knihovně se zkompiluje, ale neaktivují se za běhu. Z tohoto důvodu musí být všechny komponenty prostředí Windows Runtime, které jsou určeny ke spotřebě jinými komponentami nebo aplikacemi, implementovány v knihovně DLL (Dynamic Link Library).

Viz také

Dělení do vláken a zařazování