Questo articolo è stato scritto in collaborazione con il nostro team di editor e ricercatori esperti che ne hanno approvato accuratezza ed esaustività.
Il Content Management Team di wikiHow controlla con cura il lavoro dello staff di redattori per assicurarsi che ogni articolo incontri i nostri standard di qualità.
Questo articolo è stato visualizzato 2 548 volte
I file DLL (dall'inglese Dynamic-Linked Library) rappresentano delle librerie dinamiche di Windows create e gestite tramite il linguaggio di programmazione C++. Lo scopo delle DLL è quello di semplificare la condivisione e la gestione del codice di programmazione. Questo articolo spiega come creare un file DLL usando Visual Studio, un'app per Windows oppure Visual Studio per Mac. Durante l'installazione, assicurati che il pulsante di spunta "Sviluppo di applicazioni desktop con C++" sia selezionato. Se hai già installato Visual Studio, ma non hai incluso l'installazione del componente indicato, dovrai eseguire nuovamente la procedura guidata di installazione per aggiornare il tuo ambiente di sviluppo.
Passaggi
-
1Avvia Visual Studio. Puoi farlo dal menu "Start" o dalla cartella "Applicazioni". Dato che un file DLL non è altro che una libreria contenente del codice compilato, si tratta solo di un piccolo pezzo di un progetto e spesso richiede l'uso di un'applicazione per poter essere utilizzato o per avere accesso al suo contenuto.
- Puoi scaricare Visual Studio per Windows da questo link: https://docs.microsoft.com/it-it/visualstudio/install/install-visual-studio?view=vs-2019
- Visual Studio per Mac può essere scaricato da questo link: https://docs.microsoft.com/it-it/visualstudio/mac/installation?view=vsmac-2019
- Questo articolo sfrutta del codice sorgente di esempio fornito direttamente dalla Microsoft per spiegare come si crea e si compila una DLL.
-
2Clicca sul menu File. È collocato nella parte superiore della finestra del programma (in Windows) oppure dello schermo (su Mac).
-
3Clicca sulla voce Nuovo e scegli l'opzione Progetto. Verrà visualizzata la finestra di dialogo "Crea un nuovo progetto".
-
4Imposta le opzioni relative a Linguaggio, Piattaforma e Tipo di progetto. Si tratta di una serie di filtri in base ai quali verrà creato l'elenco dei modelli di progetti a tua disposizione.
- Clicca sul menu a discesa Linguaggio e clicca sull'opzione C++.
-
5Clicca sul menu a discesa Piattaforma e scegli l'opzione Windows.
-
6Clicca sul menu Tipo di progetto e scegli l'opzione Libreria.
-
7Clicca sulla voce Libreria a collegamento dinamico (DLL). L'opzione selezionata verrà visualizzata in blu. A questo punto clicca sul pulsante Avanti per continuare.
-
8Assegna un nome al tuo progetto digitandolo nella casella di testo "Nome". Per esempio, usa il nome "MathLibrary".
-
9Clicca sul pulsante Crea. Il progetto per la creazione di una DLL verrà preparato automaticamente da Visual Studio
-
10Aggiungi un file di intestazione per la DLL. Clicca sull'opzione "Aggiungi nuovo elemento" dal menu "Progetto".
- Seleziona l'opzione Visual C++ dal menu collocato sul lato sinistro della finestra di dialogo apparsa.
- Seleziona la voce File di intestazione (.h) dal riquadro principale della finestra di dialogo.
- Digita il nome "MathLibrary.h" nel campo di testo visibile nella parte inferiore della finestra.
- Clicca sul pulsante Aggiungi per generare un file di intestazione vuoto.
-
11Inserisci il seguente codice sorgente all'interno del file di intestazione che hai appena creato. Il codice di esempio è stato fornito direttamente dal sito web della Microsoft.
- Il codice di esempio è reperibile direttamente sul sito web della Microsoft relativo alla documentazione online
// MathLibrary.h - Contains declarations of math functions #pragma once #ifdef MATHLIBRARY_EXPORTS #define MATHLIBRARY_API __declspec(dllexport) #else #define MATHLIBRARY_API __declspec(dllimport) #endif // The Fibonacci recurrence relation describes a sequence F // where F(n) is { n = 0, a // { n = 1, b // { n > 1, F(n-2) + F(n-1) // for some initial integral values a and b. // If the sequence is initialized F(0) = 1, F(1) = 1, // then this relation produces the well-known Fibonacci // sequence: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... // Initialize a Fibonacci relation sequence // such that F(0) = a, F(1) = b. // This function must be called before any other function. extern "C" MATHLIBRARY_API void fibonacci_init( const unsigned long long a, const unsigned long long b); // Produce the next value in the sequence. // Returns true on success and updates current value and index; // false on overflow, leaves current value and index unchanged. extern "C" MATHLIBRARY_API bool fibonacci_next(); // Get the current value in the sequence. extern "C" MATHLIBRARY_API unsigned long long fibonacci_current(); // Get the position of the current value in the sequence. extern "C" MATHLIBRARY_API unsigned fibonacci_index();
-
12Aggiungi un file CPP alla DLL. Clicca sull'opzione Aggiungi nuovo elemento dal menu "Progetto".
- Seleziona la voce "Visual C++" dal menu collocato sul lato sinistro della finestra.
- Scegli la voce "File C++ (.cpp)" dal riquadro centrale della finestra.
- Digita il nome "MathLibrary.cpp" all'interno del campo "Nome" collocato nella parte inferiore della finestra.
- Clicca sul pulsante Aggiungi per generare un file vuoto.
-
13Incolla il seguente codice all'interno del file vuoto che hai appena creato.
- Il codice di esempio è reperibile direttamente sul sito web della Microsoft relativo alla documentazione online.
// MathLibrary.cpp : Defines the exported functions for the DLL. #include "stdafx.h" // use pch.h in Visual Studio 2019 #include <utility> #include <limits.h> #include "MathLibrary.h" // DLL internal state variables: static unsigned long long previous_; // Previous value, if any static unsigned long long current_; // Current sequence value static unsigned index_; // Current seq. position // Initialize a Fibonacci relation sequence // such that F(0) = a, F(1) = b. // This function must be called before any other function. void fibonacci_init( const unsigned long long a, const unsigned long long b) { index_ = 0; current_ = a; previous_ = b; // see special case when initialized } // Produce the next value in the sequence. // Returns true on success, false on overflow. bool fibonacci_next() { // check to see if we'd overflow result or position if ((ULLONG_MAX - previous_ < current_) || (UINT_MAX == index_)) { return false; } // Special case when index == 0, just return b value if (index_ > 0) { // otherwise, calculate next sequence value previous_ += current_; } std::swap(current_, previous_); ++index_; return true; } // Get the current value in the sequence. unsigned long long fibonacci_current() { return current_; } // Get the current index position in the sequence. unsigned fibonacci_index() { return index_; }
-
14Clicca sul menu Compilazione. È collocato nella parte superiore della finestra del progetto (in Windows) o lungo il lato superiore dello schermo (su Mac).
-
15Clicca sull'opzione Compila soluzione. Dopo aver cliccato sull'opzione indicata vedrai apparire un testo simile al seguente:
- Se la creazione della DLL è andata a buon fine, all'interno della finestra "Output" di Visual Studio vedrai apparire il testo indicato. Se sono stati rilevati degli errori nel codice, vedrai apparire l'elenco in modo da poterli correggere.[1]
1>------ Inizio compilazione: Progetto: MathLibrary, Configurazione: Debug Win32 ------ 1>MathLibrary.cpp 1>dllmain.cpp 1>Generazione del codice... 1>Creazione libreria C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.lib e oggetto C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.exp 1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.dll 1>MathLibrary.vcxproj -> C:\Users\username\Source\Repos\MathLibrary\Debug\MathLibrary.pdb (Partial PDB) ========== Compilazione: 1 completate, 0 non riuscite, 0 aggiornate, 0 ignorate ==========
Pubblicità
Il Content Management Team di wikiHow controlla con cura il lavoro dello staff di redattori per assicurarsi che ogni articolo incontri i nostri standard di qualità. Questo articolo è stato visualizzato 2 548 volte