Just nu i M3-nätverket
Jump to content

DLL. LIB, OBJ


slowgrammer

Recommended Posts

slowgrammer

Hejsan alla!

Jag har lite dålig koll på vad som är skillnaden mellan dessa olika filernas betydelse dll, lib, och obj.

Dll är bara för win har jag för mig, men lib och obj?

Vad blir skillnader om man går mellan kompilatorer och gör externa anrop?

 

 

Om någon orkar, så ge gärna ett exempel på användning mellan två ckomp, tex djgpp och MVC.

 

[inlägget ändrat 2002-04-10 22:11:41 av slowgrammer]

Link to comment
Share on other sites

Olle Nyrén

Så här tror jag att det är:

 

dll = Dynamic Link Library, hjälpfil till Windowsprogram.

lib = Library, ett antal metoder eller klasser som har samlats ihop för att hjälpa programmerare.

obj = Object, det kompilatorn skapar för att sedan skicka till länkaren.

 

Olika kompilatorer kommer ur samma källkod att skapa olika filer av alla dessa typer. dll-filer har publika metoder som kan anropas från alla Windows-program. lib-filer måste hittas av kompilatorn för att motsvarande h-fil ska fungera.

 

Link to comment
Share on other sites

jerker olofsson

 

Lib = statiskt arkiv.

Dll = dynamiskt arkiv.

 

Lib och Obj är mycket lika varandra.

 

Lib är i princip bara en samling objekt filer. (.obj).

 

När du bygger din applikation så länkas alla objekt- och lib-filer med till exe-filen. Kopplingen mellan lib och exe filen är 100%.

 

En DLL är samma sak som lib. Men den länkas inte med i exe filen.

 

Länkar du mot en DLL däremot, så görs bara en dynamisk koppling. När du sedan startar programmet, och en funktion som ligger i DLL:en ska anropas, letas DLL:en upp, laddas, och koden kan exekveras.

 

DLL filer måste såklart stödas att importeras till alla kompilatorer för windows. Jag vet inte hur det är med lib/obj, men det BORDE gå.

 

Mellan plattformar fungerar det inte. Unix motsvarighet till dll är (.so), obj (.o), och lib (.a).

 

Hoppas det har gett lite klarhet, och att jag inte bara pratat i nattmössan.

 

Om du behöver dela kod mellan 2 applikationer, är det utmärkt att skapa en DLL.. Bygg DLL:en i en kompilator, och länka den sedan med din applikation.

 

Om du till exempel bygger ett .lib (om det nu fungerar att länka med VC), bygg bara en .lib med djgpp, lägg sedan bara till lib:en till projektet i VC. Antingen i project settings, eller lägg till den i trädet till vänster bland alla cpp/h filer.

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...