Forskjellen mellom LIB og DLL

LIB vs DLL

Når du utvikler programvare, blir vi ofte spurt om vi vil bruke LIB eller DLLer i å inneholde funksjoner for applikasjonen. LIB er et statisk bibliotek hvor funksjoner og prosedyrer kan plasseres og kalles når applikasjonen blir kompilert. Et DLL- eller Dynamic Link Library har samme funksjon, men er dynamisk på en måte at programmet kan kalle disse bibliotekene i løpet av kjøretiden og ikke under kompileringen. Dette gir noen betydelige fordeler sammenlignet med bruk av LIB.

For det første ville du ha en enkelt fil som er betydelig større da den inneholder all koden mens du vil ha flere mindre filer når du bruker DLL. Å kompilere dine funksjoner og prosedyrer vil også gi deg mer gjenbruk som når du er fornøyd med funksjonene på DLL fordi du kan beholde det som det er med hver versjon av applikasjonen og ikke må rote med den. Du kan også bruke samme DLL hvis du vil opprette et annet program som bruker de samme funksjonene og prosedyrene. Du kan direkte koble til DLL i stedet for å kopiere koden fra kilden som du måtte gjøre med LIB.

Et problem med DLL er når du endrer innholdet i DLL. Dette kan føre til versjonsproblemer der et program bruker feil versjon av DLL forårsaker problemer. Du må holde styr på DLLene dine for å unngå disse problemene. Du ville ikke ha dette problemet med LIB som du bare ville få en stor fil.

Når du utvikler programvaren og velger DLL, vil du fortsatt ha en LIB-fil i prosjektet. Men i motsetning til når du bruker LIB, inneholder denne filen ikke koden til funksjonene og prosedyrene, men bare stubber som programmet må ringe prosedyrene fra DLL'en.

Sammendrag:
1. En DLL er et bibliotek som inneholder funksjoner som kan kalles av applikasjoner i kjøretid mens LIB er et statisk bibliotek hvis kode må kalles under samlingen
2. Bruke LIB ville resultere i en enkelt fil som er betydelig større mens du ender med flere mindre filer med DLLs
3. DLL er mer gjenbrukbare enn LIBs når du skriver nye versjoner eller helt nye applikasjoner
4. DLL-filer kan brukes av andre programmer mens LIB-filer ikke kan
5. DLL er utsatt for versionsproblemer mens LIB ikke er
6. Du vil fortsatt ha en LIB-fil når du utvikler programvare med DLLer, men den inneholder bare stubber