Odkryłem, że programowanie systemu Windows nadal jest przydatne. Dzięki naciskowi Microsoft na kompatybilność wsteczną wszystkie podstawowe rzeczy (uchwyty okien, wiadomości, GDI itp.) Wydają się być nadal aktualne i są dobrze omówione w Petzold. (Gdyby coś zmieniło się zbyt drastycznie, zepsułoby to zbyt wiele istniejących programów Windows, a ogromna liczba istniejących programów Windows stanowi dużą część przewagi Windows na rynku).
Istnieją specyficzne nowe interfejsy API, takie jak Setup API , API puli wątków i GDI + , a także nowe tematy, takie jak praca w kontekście UAC Vista i 7. Istnieje również kilka indywidualnych nowych funkcji, których Petzold nie obejmuje, ale w razie potrzeby można łatwo wyszukać nowe tematy w MSDN. Programowanie Windows również nie obejmuje COM, który może być dużą częścią programowania Windows.
Należy pamiętać, że interfejs API, który obejmuje Petzold, jest oparty na niskim poziomie i oparty na C. (Istnieje kilka nowszych interfejsów API, takich jak GDI + i niektóre elementy COM, które są zorientowane obiektowo.) Praktycznie każdy nowoczesny program będzie zorientowany obiektowo i często będzie korzystał z frameworku, takiego jak .NET lub Qt lub VCL Delphi, więc „Rzadko piszę kompletne aplikacje, które wyglądają jak przykładowy kod w Programowaniu Windows ; jednak nadal świetnie nadaje się do wyjaśniania, co się dzieje pod maską.
Rozejrzałem się jakiś czas temu i nie mogłem znaleźć żadnych nowych odniesień do API. Podejrzewam, że dzieje się tak ze względu na rozmiar obecnych interfejsów API systemu Windows; Programowanie systemu Windows, wydanie 5 ma już prawie 1500 stron, książka obejmująca wszystko, co nowe, byłaby zbyt duża. Znalazłem kilka interesujących dodatków do Programowania systemu Windows , chociaż jeszcze ich nie przeczytałem:
- Essential COM , autor: Don Box - Kilka nowych API Visty jest opartych na COM, a Petzold nie obejmuje COM.
- Programowanie systemu Windows autorstwa Johnsona M. Harta - wydaje się całkowicie pomijać GUI i GDI, które Petzold tak dobrze omawia, ale ma znacznie więcej szczegółów na temat nowoczesnych podejść do wielowątkowości, IPC itp.
- Windows Wewnętrzne , Russonovich, Solomon i Ionescu - mniej o interfejsach API i więcej o tym, jak Windows działa pod maską. Russonowicz prawdopodobnie wie o tym więcej niż ktokolwiek w firmie Microsoft lub poza nią.
Harmonogram zadań jest również nowy, dodano wiele nowych obiektów i interfejsów. Przed Task Scheduler 2.0 w planowanie zadań było zaangażowanych około 5 obiektów. W wersji 2.0 (wprowadzonej wraz z pojawieniem się Visty) jest ich 20, bez żartów, 20. To jedna z niezbyt dobrych rzeczy w programowaniu win32, ale nie jest tak źle.
Uwielbiam programować w win32, uczysz się tak dużo o tym, jak Windows i inne systemy operacyjne działają na niższym poziomie, a to czyni cię lepszym programistą. Jeśli programujesz w Pythonie, nie wiesz, jak zorganizowane są katalogi, po prostu użyj
os.listdir("")
. Ale podczas używaniaFindFirstFile()
&FindNextFile
w win32 odkrywasz, jak są zorganizowane katalogi, odkrywasz ukryte „..” i „.” katalogi i na tej podstawie można wymyślić bardziej wydajne sposoby katalogowania i wyszukiwania katalogów.Zasoby dotyczące systemu win32 znajdują się na stronie http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics
źródło