windows.h oder Windows.h



  • Hallo Forum,

    ich benutze Microsoft Visual Studio 2010 Express Edition und spiele damit ein bisschen rum. Ich habe ein einfaches Programm mit der Zeile:

    #include <windows.h>
    

    Wenn man jetzt mit der rechten Maustaste draufklickt und im Untermenü "Dokument <windows.h> öffnen", dann öffnet sich die Datei:

    C:\Programme\Microsoft SDKs\Windows\v7.0A\include**w**indows.h

    Ich habe vorhin mit der automatischen Wortvervollständigung rumgespielt und habe

    #include <wind
    

    eingegeben und dann ALT + Pfeil nach rechts, und als Vorschlag u.a. Windows.h erhalten, mit ENTER bestätigt, Projekt gebaut, keine Fehler... Rechte Maustaste, "Dokument <Windows.h> öffnen" und es öffnet sich eine

    C:\Programme\Microsoft SDKs\Windows\v7.0A\include[b]W[/b]indows.h
    

    Das ist merkwürdig, sollten denn die Header-Dateien nicht "case sensitive" sein 😕 Oder ist das irgendeine Einstellung oder Option in VS2010 😕



  • Es ist eine Frage des Dateisystems.



  • Das liegt am Dateisystem. Erstelle man eine neue Datei (Inhalt vollkommen egal, der zählt eh nicht) mit dem Namen "N", und dann versuche, eine zweite Datei im selben Ordner mit dem Namen "n" zu erstellen. Wird nicht funktionieren, weil es egal ist, ob du Groß- oder Kleinbuchstaben verwendest.

    Du kannst also auch:

    #include <WiNdOwS.H>
    

    schreiben, ist völlig wurscht



  • Stimmt, muss ja am Dateisystem liegen...
    Aber was ist jetzt die gängige Praxis: VS2010 schlägt Windows.h vor. Das ist jetzt bei mir auf dem Rechner egal, weil nicht "case sensitive", aber angenommen, auf anderen Rechnern mit einem "case sensitive" eingestellten Dateisytem? Sprich, was sollte ich lieber verwenden:

    #include <windows.h>
    

    oder

    #include <Windows.h>
    


  • Wer kompiliert denn mit Windows nicht auf NTFS? Das sollte eigentlich nicht vorkommen.



  • abc.w schrieb:

    Stimmt, muss ja am Dateisystem liegen...
    Aber was ist jetzt die gängige Praxis: VS2010 schlägt Windows.h vor. Das ist jetzt bei mir auf dem Rechner egal, weil nicht "case sensitive", aber angenommen, auf anderen Rechnern mit einem "case sensitive" eingestellten Dateisytem? Sprich, was sollte ich lieber verwenden:

    #include <windows.h>
    

    oder

    #include <Windows.h>
    

    So wie sie im Dateisystem liegt, im zweifelsfall code completion vertrauen.

    Wer kompiliert denn mit Windows nicht auf NTFS? Das sollte eigentlich nicht vorkommen.

    Schon wieder im die nur Windows Progger. Was machst du mit eine App die alle Include von Poco (http://pocoproject.org/) Klassen kleingeschrieben hat, und nun auf Linux portieren möchtest?



  • In der MSDN stehts auch mit großem W



  • Dateienamen sind unter Windows immer Case-Insensitive... deswegen spielt es keine Rolle ob groß oder klein...



  • Für die Cross-Compilierer auf Linux solltest du dann doch so freundlich sein und windows.h klein schreiben. 😉



  • Aber die Datei wird im Explorer tatsächlich großgeschrieben angezeigt...

    C:\Programme\Microsoft SDKs\Windows\v7.0A\include**W**indows.h

    D.h. beim Kopieren unter Linux wird sie vermutlich als Windows.h kopiert ( 😕 )...



  • Beim MinGW wird sie klein geschrieben angezeigt. Und der wird ja wohl zum Cross-Compilen genutzt. Im Prinzip ist das ja auch egal.



  • Die Header sind nicht aus dem WinSDK kopiert sondern neugeschrieben und unter Mingw/Gcc heisst es halt windows.h.



  • Zeus schrieb:

    Die Header sind nicht aus dem WinSDK kopiert sondern neugeschrieben und unter Mingw/Gcc heisst es halt windows.h.

    Die haben nur noch nicht mitgekriegt, daß MS das kleine w in ein großes W geändert hat.


Anmelden zum Antworten