Biblioteki statyczne (C++/CX)

Biblioteka statyczna używana w aplikacji platformy platforma uniwersalna systemu Windows (UWP) może zawierać kod C++ standardu ISO, w tym typy STL, a także wywołania interfejsów API Win32, które nie są wykluczone z platformy aplikacji środowisko wykonawcze systemu Windows. Biblioteka statyczna używa środowisko wykonawcze systemu Windows składników i może tworzyć środowisko wykonawcze systemu Windows składniki z pewnymi ograniczeniami.

Tworzenie bibliotek statycznych

Instrukcje dotyczące tworzenia nowego projektu różnią się w zależności od zainstalowanej wersji programu Visual Studio. Aby zapoznać się z dokumentacją preferowanej wersji programu Visual Studio, użyj kontrolki selektora wersji . Znajduje się on w górnej części spisu treści na tej stronie.

Aby utworzyć bibliotekę statyczną platformy UWP w programie Visual Studio

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt, aby otworzyć okno dialogowe Tworzenie nowego projektu.

  2. W górnej części okna dialogowego ustaw wartość Język na C++, ustaw wartość Platforma na Windows i ustaw wartość Typ projektu na platformę UWP.

  3. Z filtrowanej listy typów projektów wybierz pozycję Biblioteka statyczna (uniwersalny system Windows — C++/CX), a następnie wybierz przycisk Dalej. Na następnej stronie nadaj projektowi nazwę i w razie potrzeby określ lokalizację projektu.

  4. Wybierz przycisk Utwórz, aby utworzyć projekt.

Aby utworzyć bibliotekę statyczną platformy UWP w programie Visual Studio 2017 lub Visual Studio 2015

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt. W obszarze Visual C++>Windows Universal wybierz pozycję Biblioteka statyczna (uniwersalny system Windows).

  2. W Eksplorator rozwiązań otwórz menu skrótów dla projektu, a następnie wybierz pozycję Właściwości. W oknie dialogowym Właściwości konfiguracji na stronie Właściwości>konfiguracji C/C++ ustaw opcję Zużywaj rozszerzenie środowisko wykonawcze systemu Windows na Tak (/ZW)..

Podczas kompilowania nowej biblioteki statycznej, jeśli wykonasz wywołanie interfejsu API Win32 wykluczonego dla aplikacji platformy UWP, kompilator zgłosi błąd C3861" "Nie znaleziono identyfikatora". Aby wyszukać alternatywną metodę obsługiwaną dla środowisko wykonawcze systemu Windows, zobacz Alternatywy dla interfejsów API systemu Windows w aplikacjach platformy UWP.

W przypadku dodania projektu biblioteki statycznej języka C++ do rozwiązania aplikacji platformy UWP może być konieczne zaktualizowanie ustawień właściwości projektu biblioteki, aby właściwość obsługi platformy UWP miała wartość Tak. Bez tego ustawienia kod kompiluje i łączy, ale występuje błąd podczas próby zweryfikowania aplikacji w sklepie Microsoft Store. Bibliotekę statyczną należy skompilować przy użyciu tych samych ustawień kompilatora, co projekt, który z niego korzysta.

Jeśli używasz biblioteki statycznej, która tworzy klasy publiczne ref , klasy interfejsu publicznego lub klasy wartości publicznej, konsolidator zgłasza następujące ostrzeżenie:

ostrzeżenie LNK4264: archiwizowanie pliku obiektu skompilowanego za pomocą /ZW w bibliotece statycznej; należy pamiętać, że podczas tworzenia typów środowisko wykonawcze systemu Windows nie zaleca się łączenia z biblioteką statyczną zawierającą metadane środowisko wykonawcze systemu Windows.

Można bezpiecznie zignorować ostrzeżenie tylko wtedy, gdy biblioteka statyczna nie generuje środowisko wykonawcze systemu Windows składników używanych poza samą biblioteką. Jeśli biblioteka nie używa zdefiniowanego składnika, konsolidator może zoptymalizować implementację, mimo że publiczne metadane zawierają informacje o typie. Oznacza to, że publiczne składniki w bibliotece statycznej skompilują się, ale nie zostaną aktywowane w czasie wykonywania. Z tego powodu każdy składnik środowisko wykonawcze systemu Windows przeznaczony do użycia przez inne składniki lub aplikacje musi być zaimplementowany w bibliotece dll łącza dynamicznego.

Zobacz też

Wątkowość i marshaling