Я нашел Программирование Windows все еще полезным. Благодаря акценту Microsoft на обратную совместимость все основные элементы (дескрипторы окон, сообщения, GDI и т. Д.), По-видимому, все еще актуальны и хорошо освещены в Petzold. (Если бы что-то изменилось слишком сильно, это сломало бы слишком много существующих программ Windows, и огромное количество существующих программ Windows - большая часть преимущества Windows на рынке.)
Есть определенные новые API - интерфейсы, такие как настройки API , в пул потоков API , и GDI + , и появляются новые темы , такие как работа в контексте в Vista и 7 в UAC. Есть также несколько отдельных новых функций, которые Petzold не охватывает, но достаточно просто искать новые темы в MSDN по мере необходимости. Программирование Windows также не охватывает COM, который может быть большой частью программирования Windows.
Имейте в виду, что API, который охватывает Petzold, является низкоуровневым и основанным на C. (Есть несколько более новых API, таких как GDI + и некоторые из COM-объектов, которые являются объектно-ориентированными.) Практически любая современная разработка будет объектно-ориентированной и часто будет использовать каркас, такой как .NET или Qt или Delphi VCL, так что вы редко будете писать законченные приложения, которые выглядят как пример кода в Программировании Windows ; Тем не менее, он все еще отлично подходит для объяснения того, что происходит под капотом.
Некоторое время назад я огляделся и не смог найти никаких новых ссылок на API. Я подозреваю, что это из-за огромного размера текущих API Windows; Программирование Windows, 5-е издание , уже насчитывает почти 1500 страниц, книга, в которой освещалось бы что-то новое, была бы слишком большой. Я нашел несколько интересных приложений для программирования Windows , хотя я еще не читал их:
- Essential COM , от Don Box - Некоторые из новых API-интерфейсов Vista основаны на COM, а Petzold не охватывает COM.
- Системное программирование Windows , Джонсон М. Харт - кажется, полностью пропускает GUI и GDI, которые Petzold так хорошо описывает, но в нем гораздо больше подробностей о современных подходах, таких как многопоточность, IPC и т. Д.
- Windows Internals , Руссонович, Соломон и Ионеску - меньше об API и больше о том, как Windows работает под капотом. Руссонович, вероятно, знает об этом больше, чем кто-либо внутри или за пределами Microsoft.
Планировщик заданий также является новым, было добавлено много новых объектов и интерфейсов. До планировщика заданий 2.0 в планировании задач участвовало около 5 объектов. В 2.0 (представленном, когда Vista вышла), есть 20, без шуток, 20. Это одна из не очень хороших вещей в программировании на win32, но это не так уж плохо.
Я люблю программировать на win32, вы так много узнаете о том, как работают Windows и другие ОС на более низком уровне, и я считаю, что это делает вас лучшим программистом. Если вы программируете на python, вы не узнаете, как организованы каталоги, просто используйте
os.listdir("")
. Но при использованииFindFirstFile()
&FindNextFile
в win32 вы узнаете, как организованы каталоги, обнаружите скрытые ".." & "." Каталоги и из этого могут придумать более эффективные способы каталогизации и поиска каталогов.Для получения ресурсов win32 перейдите на страницу http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics.
источник