Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » h, lib und dll

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.09.2003, 14:26 Uhr
~C-Anfänger
Gast


Hallo!

Kann mir bitte jemand den Zusammenhang zwischen den Dateitypen *.h, *.lib und *.dll erklären?

Mir fehlt da irgendwie der Durchblick. Was ist so gespeichert? Was ist am Ende dann in der EXE und was muss separat am Zielrechner installiert werden?

Danke im Voraus!

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.09.2003, 14:46 Uhr
0xdeadbeef
Gott
(Operator)


-->
Plattformabhängig.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.09.2003, 15:10 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Libs und "Hs" werden sind am Ende in der Exe, Dlls müssen extra installiert werden
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.09.2003, 13:30 Uhr
virtual
Sexiest Bit alive
(Operator)


Vielleicht noch was zu den Inhalten der einzlnen Dateien:
.h Datei enthalten die Deklarationen der Funktionen, dh da steht dann Drin, wie die Funktion aufrzurufen ist und was sie zurückgibt. Wenn Du eine Funktion mit folgender Definition hast:

C++:
size_t strlen(const char* s)
{
    const char* p = s;
    while (*p) ++p;
    return p-s;
}


So wollte im Header stehen

C++:
extern size_t strlen(const char* s);


Damit jemand, der die .h mittels include einbindet (denn dafür ist sie ja da) vom Compiler auch kräftig beschimpft werden kann, wenn er der Funktion was falsches übergibt oder was falsches zurück haben will.
In der .dll steht dann die Definition drin, eben in Maschinencode die Definition der Funktion.
Bei der .lib datei handelt es sich um eine Sogenannte Importlibrary. Windows ist was die Verwendung von DLLs (Dynamische Libararies) angeht ein wenig fimischig und erfordert seitens des programms, welches die Funktionen der DLL aufrufen will, spezielle "Stubs", also Funktionen, die den Aufruf der eigentlich interessaten Funktion überhaupt erst möglich machen. Diese Funktionen stehen in der ImportLibrary drin. Diese .lib Datei sind Statische Library und machen im wesentlich nichts anderes als die entsprechenden Funktionen der DLL aufrufen.
Ob dieses Umständliche DLL und LIB Gedönse auf eine unaufgeräumte Vergangenheit von Windows zurückzuführen ist oder auf Boshaftigkeit der Windowsentwickler zurückzuführen ist, kann ich Dir nicht sagen, andere System kommen jedenfalls ohne solchen Quatsch klar.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 15.09.2003 um 13:31 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.09.2003, 23:03 Uhr
Christian
C/C++ Master
(Operator)


@Virtual: Nett gesagt!
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: