Domanda

Utilizzando Visual Studio 2008, ho un un file .H di una biblioteca e .LIB. Ho scritto un programma e fatto riferimento il LIB tramite le proprietà del progetto. Si compila bene, ma quando si corre, si chiede per la DLL da installare. Se la DLL si trova nella stessa directory come il EXE funziona ma, se ho la LIB, non è vero già dire le funzioni sono staticamente collegati al mio programma?

È stato utile?

Soluzione

Non tutti i file lib sono librerie statiche. Alcuni sono librerie di importazione, e le probabilità sono, questo è quello che si è collegato con.

Se il file lib è molto più piccolo rispetto al suo file di dll corrispondente, questo è un segno sicuro che si tratta di una libreria di importazione.

Altri suggerimenti

Lasciando il tuo programma di usare una DLL richiede una libreria di importazione. Si tratta di un file con estensione .lib, proprio come un lib statica. Ma è molto piccolo, contiene solo un elenco delle funzioni che vengono esportati dalla DLL. Il linker ha bisogno di questo in modo che possa incorporare il nome della DLL nella tabella di importazione. Si può vedere questo per te eseguendo Dumpbin.exe / importazioni sul exe

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top