Librerie statiche (C++/CX)
Una libreria statica usata in un'app UWP (piattaforma UWP (Universal Windows Platform)) può contenere codice C++ standard ISO, inclusi i tipi STL e chiamate anche alle API Win32 che non sono escluse dalla piattaforma dell'app Windows Runtime. Una libreria statica utilizza componenti Windows Runtime e può creare componenti Windows Runtime con determinate restrizioni.
Creazione di librerie statiche
Le istruzioni per la creazione di un nuovo progetto variano a seconda della versione di Visual Studio installata. Per visualizzare la documentazione relativa alla versione preferita di Visual Studio, usare il controllo selettore della versione . Si trova nella parte superiore del sommario in questa pagina.
Per creare una libreria statica UWP in Visual Studio
Sulla barra dei menu scegliere File>Nuovo>progetto per aprire la finestra di dialogo Crea un nuovo progetto.
Nella parte superiore della finestra di dialogo impostare Linguaggio su C++, impostare Piattaforma su Windows e impostare Tipo di progetto su UWP.
Nell'elenco filtrato dei tipi di progetto scegliere Libreria statica (Windows universale - C++/CX) e quindi scegliere Avanti. Nella pagina successiva assegnare un nome al progetto e specificare il percorso del progetto, se necessario.
Scegliere il pulsante Crea per creare il progetto.
Per creare una libreria statica UWP in Visual Studio 2017 o Visual Studio 2015
Nella barra dei menu scegliere File>Nuovo>Progetto. In Visual C++>Windows Universale scegliere Libreria statica (Windows universale).
In Esplora soluzioniaprire il menu di scelta rapida per il progetto e scegliere Proprietà. Nella pagina Proprietà>C/C++ della finestra di dialogo Proprietà di configurazione impostare Utilizza estensione Windows Runtime su Sì (/ZW).
Quando compili una nuova libreria statica, se esegui una chiamata a un'API Win32 esclusa per le app UWP, il compilatore genererà l'errore C3861, "Identificatore non trovato". Per cercare un metodo alternativo supportato per Windows Runtime, vedi Alternative alle API di Windows nelle app UWP.
Se aggiungi un progetto di libreria statica C++ a una soluzione di app UWP, potresti dover aggiornare le impostazioni delle proprietà del progetto di libreria in modo che la proprietà di supporto UWP sia impostata su Sì. Senza questa impostazione, il codice compila e collega, ma si verifica un errore quando si tenta di verificare l'app per Microsoft Store. La libreria statica deve essere compilata con le stesse impostazioni del compilatore del progetto che la utilizza.
Se utilizzi una libreria statica che crea classi ref
pubbliche, classi di interfaccia pubbliche o classi di valore pubbliche, verrà generato il seguente avviso da parte del linker:
avviso LNK4264: archiviazione del file oggetto compilato con /ZW in una libreria statica. Si noti che quando si creano tipi Windows Runtime non è consigliabile collegarsi a una libreria statica contenente i metadati di Windows Runtime.
È possibile ignorare l'avviso solo se la libreria statica non produce componenti Windows Runtime utilizzati all'esterno della libreria stessa. Se la libreria non utilizza un componente definito, il linker può ottimizzare l'implementazione anche se i metadati pubblici contengono le informazioni sul tipo. Ciò significa che i componenti pubblici in una libreria statica verranno compilati ma non attivati in fase di esecuzione. Per questo motivo, qualsiasi componente Windows Runtime destinato all'utilizzo da parte di altri componenti o app deve essere implementato in una libreria a collegamento dinamico (DLL).