Statiska bibliotek (C++/CX)

Ett statiskt bibliotek som används i en UWP-app (Universal Windows Platform) kan innehålla C++-kod av ISO-standard, inklusive STL-typer, och även anrop till Win32-API:er som inte är undantagna från Windows Runtime-appplattformen. Ett statiskt bibliotek använder Windows Runtime-komponenter och kan skapa Windows Runtime-komponenter med vissa begränsningar.

Skapa statiska bibliotek

Instruktionerna för att skapa ett nytt projekt varierar beroende på vilken version av Visual Studio du har installerat. Om du vill se dokumentationen för din föredragna version av Visual Studio använder du väljarkontrollen Version. Den finns överst i innehållsförteckningen på den här sidan.

Så här skapar du ett statiskt UWP-bibliotek i Visual Studio

  1. I menyraden väljer du Arkiv>Nytt>projekt för att öppna dialogrutan Skapa ett nytt projekt .

  2. Överst i dialogrutan anger du Språk till C++, anger Plattform till Windows och anger Projekttyp till UWP.

  3. I den filtrerade listan över projekttyper väljer du Statiskt bibliotek (Universal Windows – C++/CX) och väljer sedan Nästa. På nästa sida ger du projektet ett namn och anger projektplatsen om du vill.

  4. Välj knappen Skapa för att skapa projektet.

Skapa ett statiskt UWP-bibliotek i Visual Studio 2017 eller Visual Studio 2015

  1. På menyraden väljer du Arkiv>Nytt>projekt. Under Visual C++>Windows Universal väljer du Statiskt bibliotek (Universellt Windows).

  2. Öppna snabbmenyn för projektet i Solution Explorer och välj sedan Egenskaper. I dialogrutan Egenskaper går du till sidan Konfigurationsegenskaper>C/C++ och anger Använd Windows Runtime-tillägget till Ja (/ZW).

När du kompilerar ett nytt statiskt bibliotek, om du gör ett anrop till ett Win32-API som undantas för UWP-appar, genererar kompilatorn felet C3861, "Identifieraren hittades inte". Om du vill söka efter en alternativ metod som stöds för Windows Runtime kan du läsa Alternativ till Windows-API:er i UWP-appar.

Om du lägger till ett C++-projekt för statiskt bibliotek i en UWP-applösning kan du behöva uppdatera biblioteksprojektets egenskapsinställningar så att UWP-supportegenskapen är inställd på Ja. Utan den här inställningen skapas och länkar koden, men ett fel uppstår när du försöker verifiera appen för Microsoft Store. Den statiska liben ska kompileras med samma kompilatorinställningar som projektet som använder det.

Om du använder ett statiskt bibliotek som skapar offentliga ref klasser, offentliga gränssnittsklasser eller offentliga värdeklasser genererar länkaren den här varningen:

varning LNK4264: arkivera objektfil som kompilerats med /ZW till ett statiskt bibliotek; Observera att när du redigerar Windows Runtime-typer rekommenderas det inte att länka till ett statiskt bibliotek som innehåller Windows Runtime-metadata.

Du kan bara ignorera varningen på ett säkert sätt om det statiska biblioteket inte producerar Windows Runtime-komponenter som förbrukas utanför själva biblioteket. Om biblioteket inte använder en komponent som definieras kan länkaren optimera implementeringen även om de offentliga metadata innehåller typinformationen. Det innebär att offentliga komponenter i ett statiskt bibliotek kompileras men inte aktiveras vid körning. Därför måste alla Windows Runtime-komponenter som är avsedda för användning av andra komponenter eller appar implementeras i ett DLL-bibliotek (Dynamic Link Library).

Se även

Trådning och marskalkning