2015-07-23 29 views
8

Sto lavorando a un progetto che comporta la creazione di una libreria di collegamento dinamico, quindi voglio verificarlo in un'app console in Visual Studio.Aggiunta della DLL a un progetto di Visual Studio in C++

La DLL è anche realizzata in Visual Studio, non ha molto, solo poche funzioni al suo interno. Non sono sicuro se sto solo dovuto includere l'intestazione librarys nel comprendono pannello di directory in Proprietà, o fare qualcos'altro

Un sacco di gente dice che dovrei aggiungere il suo corrispondente .lib file nella directory Libreria o di riferimento, ma non sono sicuro che VS genera un file .lib accanto alla DLL. Sto utilizzando VS 2015.

+0

Hai aggiunto la dll come riferimento?In Visual Studio in alto, vai su Progetto, quindi Aggiungi riferimento ..., Sfoglia e trova il tuo file. Non sono sicuro se questo è ciò che intendi. – MC10

+0

Penso che lo sia, è solo che tutti mi dicono che dovrei aggiungere un file di libreria statica di corespinding invece della DLL stessa, quindi ho chiesto di essere sicuro, l'ho provato una volta prima ma non funzionava e io Non sono sicuro di quale sia il problema adesso. – Reaper9806

risposta

7

Non ho VS davanti a me questo momento, ma questi dovrebbero essere i passi generali per configurarlo:

Properties->Linker->Input: your.lib 
Properties->Linker->Additional Library Directories: ../your/bin 
Properties->General->Compiler->Additional Include Directories: ../your/include 

Per costruire la vostra applicazione, il Le intestazioni API della DLL devono essere nell'inclusione per la fase di compilazione, sono i file LIB nel cestino per il tempo di collegamento. Una volta che hai l'applicazione EXE, tutto ciò che serve è che la DLL si trovi nella stessa cartella del tuo EXE quando viene eseguita.

Si potrebbe anche voler aggiungere il progetto dll e il progetto dell'app in una soluzione comune in VS e aggiungere (tasto destro del mouse) Dipendenza del progetto dall'app alla DLL. Questo garantisce un corretto ordine di costruzione, assumendo che si sta per costruire la dll a tutti.

+1

Grazie amico, è annoiato! :) – Reaper9806

+0

Si prega di contrassegnare la mia risposta come confermata/accettata se non vi dispiace :) –

+0

Ho pensato che il clic ha funzionato, la mia connessione è un po 'instabile. – Reaper9806

2

Puoi anche fare quello che ho fatto.

  1. È possibile creare una directory Libs all'interno della directory della soluzione.
  2. È quindi possibile inserire i file DLL all'interno della directory Libs o alcuni sub-directory all'interno di Libs

    • Nel mio caso, ho aggiunto in tutta la directory SFML-2.3.2 in là, che ha incluso il codice sorgente File .lib e .dll.
    • Ho collegato ciò che potevo nelle proprietà del progetto, ma ho utilizzato i macro di Visual Studio per compilare il nome del percorso nella directory della soluzione. Nel caso in cui volessi metterlo in controllo di versione e lavorarci sopra da più macchine.
  3. Quindi ho aperto la pagina delle proprietà del progetto.

  4. All'interno della pagina delle proprietà, sono andato a Eventi di compilazione -> post-generazione Evento -> Command Line
  5. All'interno della riga di comando il , è possibile aggiungere un comando di copia che copierà i file necessari nella stessa directory dell'eseguibile che ne avrà bisogno.
    • Nel mio caso ho usato: copy "$(SolutionDir)Libs\SFML-2.3.2\bin\*" "$(TargetDir)"
    • Avrei potuto scrivere più comandi per copiare solo i file singoli di cui avevo bisogno, ma avevo passato ben tre ore cercando di ottenere SFML di lavorare senza in realtà l'installazione.
+0

La domanda riguardava l'utilizzo generale della DLL nel progetto Visual Studio e la risposta è relativa a SFML. Per favore, generalizza la risposta. –

+0

Mi spiace, stavo cercando di far funzionare SFML sul mio progetto senza installarlo sul mio computer, quindi avevo al momento alcune schede aperte. Sembra che ho aggiunto la mia risposta alla domanda sbagliata. –