Condividi tramite


DLL (C++/CX)

Puoi usare Visual Studio per creare una DLL Win32 standard o una DLL del componente Windows Runtime che può essere utilizzata dalle app piattaforma UWP (Universal Windows Platform) (UWP). Una DLL standard creata usando una versione di Visual Studio o il compilatore Microsoft C++ precedente a Visual Studio 2012 potrebbe non essere caricato correttamente in un'app UWP e potrebbe non superare il test di verifica dell'app in Microsoft Store.

DLL del componente Windows Runtime

In quasi tutti i casi, quando vuoi creare una DLL da usare in un'app UWP, creala come componente Windows Runtime usando il modello di progetto di tale nome. È possibile creare un progetto di componente Windows Runtime per DLL con tipi Windows Runtime pubblici o privati. È possibile accedere a un componente Windows Runtime dalle app scritte in qualsiasi linguaggio compatibile con Windows Runtime. Per impostazione predefinita, le impostazioni del compilatore per un progetto di componente Windows Runtime usano l'opzione /ZW . Un file .winmd deve avere lo stesso nome dello spazio dei nomi radice. Ad esempio, è possibile creare un'istanza di una classe denominata A.B.C.MyClass solo se è definita in un file di metadati denominato A.winmd o A.B.winmd o A.B.C.winmd. Il nome della DLL non deve necessariamente corrispondere al nome del file con estensione winmd.

Per altre informazioni, vedi Creazione di componenti Windows Runtime in C++.

Per fare riferimento a un file binario del componente Windows Runtime di terze parti nel progetto

  1. Apri il menu di scelta rapida del progetto che utilizzerà la DLL, quindi scegli Proprietà. Nella pagina Proprietà comuni fai clic su Aggiungi nuovo riferimento .

  2. Un componente Windows Runtime è costituito da un file DLL e da un file con estensione winmd che contiene i metadati. In genere, questi file si trovano nella stessa cartella. Nel riquadro a sinistra nella finestra di dialogo Aggiungi riferimento , fai clic su Sfoglia quindi passa alla cartella che contiene i file DLL e il relativo file .winmd. Per altre informazioni, vedere SDK di estensione.

DLL standard

Puoi creare una DLL standard per il codice C++ che non utilizza o produce tipi di Windows Runtime pubblici e la utilizza da un'app UWP. Usare il tipo di progetto DLL (Dynamic-Link Library) quando si vuole semplicemente eseguire la migrazione di una DLL esistente per la compilazione in questa versione di Visual Studio, ma non convertire il codice in un progetto componente Windows Runtime. Quando usi i seguenti passaggi, la DLL viene distribuita insieme all'eseguibile dell'app nel pacchetto con estensione appx.

Per creare una DLL standard in Visual Studio

  1. Sulla barra dei menu scegliere File, Nuovo, Progetto e quindi selezionare il modello Dll (Dynamic Link Library).

  2. Immetti un nome per il progetto, quindi scegli il pulsante OK .

  3. Aggiungi il codice. Assicurati di utilizzare __declspec(dllexport) per le funzioni che intendi esportare, ad esempio __declspec(dllexport) Add(int I, in j);

  4. Aggiungere #include winapifamily.h per includere il file di intestazione da Windows SDK per le app UWP e impostare la macro WINAPI_FAMILY=WINAPI_PARTITION_APP.

Per fare riferimento a un progetto con DLL standard dalla stessa soluzione

  1. Apri il menu di scelta rapida del progetto che utilizzerà la DLL, quindi scegli Proprietà. Nella pagina Proprietà comuni fai clic su Aggiungi nuovo riferimento .

  2. Nel riquadro a sinistra seleziona Soluzione, quindi seleziona la casella di controllo appropriata nel riquadro a destra.

  3. Nei file del codice sorgente aggiungi un'istruzione #include per il file di intestazione DLL, in base alle necessità.

Per fare riferimento a un file binario DLL standard

  1. Copia il file DLL, il file con estensione lib e il file di intestazione e incollali in un percorso noto, ad esempio nella cartella del progetto corrente.

  2. Apri il menu di scelta rapida del progetto che utilizzerà la DLL, quindi scegli Proprietà. Scegli Proprietà di configurazione, Linker, Input e nella pagina che viene visualizzata aggiungi il file con estensione lib come dipendenza.

  3. Nei file del codice sorgente aggiungi un'istruzione #include per il file di intestazione DLL, in base alle necessità.

Per eseguire la migrazione di una DLL Win32 esistente per la compatibilità delle app UWP

  1. Creare un progetto di tipo DLL (Windows universale) e aggiungervi il codice sorgente esistente.

  2. Aggiungere #include winapifamily.h per includere il file di intestazione da Windows SDK per le app UWP e impostare la macro WINAPI_FAMILY=WINAPI_PARTITION_APP.

  3. Nei file del codice sorgente aggiungi un'istruzione #include per il file di intestazione DLL, in base alle necessità.