2013-03-17 8 views
5

Jaka jest różnica między małą literą <windows.h> a wielką literą <Windows.h> nagłówka? Czytam stare tutoriale na temat programowania Win32 i wszystkie używają małych liter "w". Kod kompiluje dobrze, ale funkcja autouzupełniania VS 2012 zawiera tylko nagłówek <Windows.h>.Małe okienko windows.h i duża różnica Windows.h?

+0

To dokładnie to samo. –

+0

Podobało mi się to pytanie, ponieważ zazwyczaj nie pytasz o to i to w każdym przypadku, gdy piszesz 'w' lub' W' działa. – MahanGM

Odpowiedz

12

Nie ma żadnej różnicy, a nie mógłby istnieć jako nazw plików w systemie Windows (NTFS) są wrażliwe na wielkość liter.


Faktycznie, według Filenames are Case Sensitive on NTFS Volumes NTFS ma dwa tryby gdzie wielkość liter:

NTFS obsługuje dwa nieco różne tryby pracy, które mogą być wybrane przez podsystem aplikacji interakcji NTFS . Pierwsza jest w pełni rozróżniana i wymaga, aby nazwy plików podane przez aplikację odpowiadały nazwom przechowywanym na dysku, w tym przypadku, jeśli plik na dysku ma zostać wybrany. Drugi tryb operacji to zachowanie sprawy, ale nie rozróżniana jest wielkość liter. Oznacza to, że aplikacje mogą wybierać pliki na dysku, nawet jeśli podana nazwa różni się na przykład od nazwy zapisanej na dysku. Zwróć uwagę, że oba tryby zachowują wielkość liter używaną do tworzenia plików. Różnica w zachowaniu opisana tutaj dotyczy tylko wtedy, gdy aplikacja musi zlokalizować istniejący plik. POSIX korzysta z pełnego trybu rozróżniania wielkości liter, natomiast podsystemy MS-DOS, WOW i Win32 używają trybu niewrażliwego na wielkość liter.

+0

Tak, teraz przypomniałem sobie, że w systemie Linux rozróżniane są małe i wielkie litery, Windows no – balky

2

Są to ten sam system plików plików systemu Windows jest sprawa niewrażliwe

7

Systemy plików w systemie Windows są niewrażliwe na wielkość liter, więc albo będzie działać podczas kompilacji w systemie Windows. Jednak gdybyś miał skompilować się na Linuksie, na przykład używając kompilatora Krzyża MinGW, sprawa byłaby ważna.

Nagłówek MinGW windows.h zawsze ma małe litery.

Plik Windows.h dostarczony z narzędziami Microsoftu wykorzystał wiele różnych przypadków.

  • starych instalacji VC++ (VC++ 98 i wcześniej) wydaje się, aby zainstalować - Wszystkie czapki
  • nowsze instalacje VC++ i systemu Windows SDK wydają się używać Windows.h
  • jakieś SDK urządzeń mobilnych (PocketPC lub Windows Mobile) użyj windows.h - wszystkie małe litery.

Od windows.h zawsze będzie działać na systemach Windows i Linux skompilować krzyża, użyję #include <windows.h> jeśli kiedykolwiek myślał o niej. Którego nie mogę sobie przypomnieć, dopóki nie odpowiem na to.

Nie przejmowałbym się tym zbytnio. Nawet jeśli forma pisana wielką literą trafia na kompilację Linuksa MinGW, łatwa (a może i denerwująca) poprawka polega na utworzeniu pliku Windows.h, który po prostu się odwraca i zawiera windows.h.

+2

Albo dowiązanie symboliczne ... –

+1

@R .: tak - pokazuje moje myślenie zorientowane na Windows. –

Powiązane problemy