Seite 1 von 1

Header und Libs in C/C++

Verfasst: 07.01.2006 22:26
von Nik
Hallo,
da ich im Moment die Wartezeit auf PB 4.0 (war sowieso geplant^^) miz c++ lernen verbringe und einiges schon sehr gut klappt, will ich mich jetzt etwas weietr wagen, davor stehen allerdings noch ein paar kleinere Hürden, und zwar bräuchte ich Antworten auf folgende Fragen:
1. Wenn ich WinAPI Funktionen in C++ nutzen will muss ich ja den richtigen Header einbinden und manchmal auch nochdie passende Lib dazu linken, so weit so gut, aber wo kann ich anchlesen welche API Funktion in welchem Header steht und welche Lib ich dazu linken muss?
(Habe immerhin schon GetTickCount() benutzen können wofür ich nur Windows.h inkludieren musste)

2. Kann ich die WinAPI Funktionen getrost mit C++ Klassen ummanteln oder muss ich auf eien etvaige C Bindung acht geben?

3. Unterschiedliche Compiler linken ja auch unterschiedliche Librarys standardmäßig dazu, nun habe ich das Problem das ein Netzwerk beispiel das in c geschrieben ist nicht mit meinem gcc kompleieren will weil wohl eine Lib nicht mitgelinked wird, wie finde ich heraus welche das ist.
(http://cplus.kompf.de/artikel/httpget.html)<-Das Beispiel

4. In manchen Beispielen sieht man, das vor den functionen WINAPI geschrieben wird. Was bewirtkt das? und wann ist es nötig?

Danke schonmal im Vorraus
mfg Nik

Verfasst: 08.01.2006 00:06
von MVXA
1:
Müsste in der MSDN stehen im welchem Header und welcher Library
die Funktion deklariert ist.

2:
Kannste auch mit Klassen ummanteln.

Verfasst: 11.01.2006 16:51
von Tibor
3:
http://www.pronix.de/pronix-863.html hat geschrieben:Bibliotheken
Unter MS-Windows wird außerdem noch die Winsock-Bibliothek benötigt. Hierfür sind leider bei den verschiedensten Compiler unterschiedliche Bibliotheksnamen angegeben. Mir bekannte Namen unter MS-VC++ 6.0 sind bspw. WSOCK32.LIB (winsock) und WS2_32.LIB (winsock2) oder bei einigen anderen Compilern habe ich hierbei WINSOCK32.LIB und WINSOCK2_32.LIB verwendet.

Die Beispiele getestet habe ich allerdings unter MS-Windows mit der kostenlosen Entwicklungsumgebung Bloodshed Dev-C++. Hierbei lautet der Bibliothekennamen LIBWSOCK32.a (winsock) oder LIBWS2_32.a (winsock2). Dabei müssen Sie bei Ihrem neuen Projekte lediglich eine der beiden Bibliotheken dem Linker mitteilen. Dies können Sie mit "Projekt" -> "Projekt Optionen" -> "Parameter" unter dem Feld "Linker" machen. Hier brauchen Sie nur im lib-Verzeichnis die entsprechende Bibliothek auswählen.

Verfasst: 11.01.2006 20:02
von Nik
Danke Leute ihr habt mir sehr geholfen!
bin jetzt gerade dabei das ganze mit schönen voneinander abgeleiteten Klassen zu ummanteln :allright: