Ergebnis 1 bis 5 von 5
  1. #1
    Bad Times Virus Avatar von nathex
    Registriert seit
    21.07.2008
    Beiträge
    546

    Standard windows header file

    Heyho,

    bin im Moment noch am C++ lernen, und habe eine kurze frage zum "windows header". Ich denke, dass das die WinApi ist (glaub ich zumindest... ne genaue Erklaerung waer nett )

    So nun zu meiner eigendlichen Frage:

    Ich habe vorhin ein Programm mit einer while-schleife geschrieben. Dabei habe ich "windows.h" inkludiert, um die sleep()-funktion nutzen zu koennen.

    Ich frage mich nun, warum es falsch ist wenn ich beim include nur <windows> eingebe? Bisher hatte ich noch nie Probleme, wenn ich bei den header-files in C++ das .h weggelassen habe, oder es durch ein "c" am Anfang ersetzt habe (z.b. bei <cstdio>).

    Vielen Dank schonmal,
    greetZ nathex

  2. #2
    Trojaner Avatar von Sunrise
    Registriert seit
    20.09.2007
    Beiträge
    58

    Standard

    das .h deutet oftmals darauf hin, dass die Headerdatei aus C oder alten C++ zeiten übernommen wurde.
    Das hat damit etwas zu tuen, dass bei .h nur die Headerdatei geladen wird. bei <iostream> wird aber das ganze Projekt geladen. cstdio ist glaube ich auch die alte C Version von stdio. weis das aber nicht so wirklich^^
    JaJa, deine Mutter und so weiter....

  3. #3
    Bad Times Virus Avatar von nathex
    Registriert seit
    21.07.2008
    Beiträge
    546

    Standard

    Dass das .h darauf hindeutet, dass die headerdatei aus C uebernommen wurde, weiss ich!
    Allerdings konnte man anstatt dem .h immer ein c vor den header schreiben (beim inkludieren).
    Zum Beispiel anstatt <stdio.h> kann man dann <cstdio> schreiben.

    Aber warum geht das mit <windows.h> nicht? Da geht weder <windows> noch <cwindows>...
    Ist das vielleicht so, weil die winapi damals einfach aus dem C komplett uebernommen wurde, und daher auch nichts am header geaendert wurde?

  4. #4
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von nathex Beitrag anzeigen
    Aber warum geht das mit <windows.h> nicht? Da geht weder <windows> noch <cwindows>...
    Ist das vielleicht so, weil die winapi damals einfach aus dem C komplett uebernommen wurde, und daher auch nichts am header geaendert wurde?
    Deine Annahme ist falsch.
    Die #include-Anweisung veranlasst den Präprozessor nur dazu, in allen durch die PATH-Umgebungsvariable * definierten Ordnern, bzw. die durch -I angegebenen Pfade ** und dem lokalen "Working Directory" ***.
    * (gib unter Windows mal "echo %PATH%" in die Eingabeaufforderung ein)
    ** ( gilt nur für GCC und GCC Ports - siehe http://gcc.gnu.org/onlinedocs/gcc-4....ml#Search-Path )
    *** (mir ist kein besseres Wort eingefallen...)

    Benutzt du Dev-C++ mit einer normalen Installation (MinGW wird automatisch installiert), so findest du deine Header hier:
    C:\Dev-Cpp\include
    Wenn du im C++-Modus compilierst wird zusätzlich noch in C:\Dev-Cpp\include\c++\3.4.2 gesucht.
    Du wirst sehen, dass sich dort Dateien wie iostream, cstdio, cstdlib, usw. befinden.
    Jedoch kein cwindows, oder einfach nur windows.

    Alle Dateien, die du mit #include einbindest existieren folglich auch auf deinem Dateisystem und deren Pfade (also Aufenthaltsorte) müssen dem Präprozessor bekannt sein.
    Wenn man sich das vorstellen will, kann man sagen, dass der ganze Quelltext, den man inkludiert einfach dort, wo die #include-Anweisung steht angehängt wird. (ganz so einfach ist es natürlich auch nicht, da uA. auch die Makros __FILE__ und __LINE__ für jede Datei, bzw. jede Zeile in der Datei neu definiert werden)

    Lange Rede, kurzer Sinn: du kannst nur das inkludieren, was es auch als Datei irgendwo auf deiner Festplatte gibt.
    Windows oder CWindows existieren nicht.
    Folglich kannst du sie nicht einbinden!



    mfG. BlackBerry

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  5. #5
    Bad Times Virus Avatar von nathex
    Registriert seit
    21.07.2008
    Beiträge
    546

    Standard

    Lange Rede, kurzer Sinn: du kannst nur das inkludieren, was es auch als Datei irgendwo auf deiner Festplatte gibt.
    Windows oder CWindows existieren nicht.
    Folglich kannst du sie nicht einbinden!
    Ahh... Okay habs nun verstanden
    Thank You

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •