Weiterentwicklung der Win32-API [geschlossen]

11

Hat sich die Windows 32-API im Laufe der Zeit stark verändert? Enthält das Charles Petzold-Buch "Programming Windows, 5th Edition" von 1998 noch relevante Informationen oder ist das meiste davon veraltet / veraltet?

Was sind einige herausragende Beispiele für die jüngsten Ergänzungen der Windows 32-API (falls vorhanden)?

Fredoverflow
quelle

Antworten:

4

Die neue Thread-Pool-API in Windows Vista ist eine ernsthafte Verbesserung und Hilfe für gut geschriebene Programme mit mehreren Threads. Dies ist ein einfaches Beispiel für die Entwicklung von WinAPI. Die Notwendigkeit, die Kompatibilität aufrechtzuerhalten, war jedoch ein treibender Faktor, um die Grundlagen der Windows-API beizubehalten, und führte zu einigen nicht idealen Dingen, wie dem Vorherrschen von Ex-Funktionen wie CreateWindowEx. Es gibt immer noch Funktionen, die mit 64-Bit-Windows kompiliert werden können und mit 16-Bit-Programmen kompatibel sind.

Dieses Buch wird weiterhin von Nutzen sein, wenn Sie WinAPI-basierte Programme schreiben möchten, die Funktionen ausführen, die 1998 üblich waren, da es unwahrscheinlich ist, dass sich die API geändert hat. Natürlich sind die Best Practices in der Ursprungssprache möglicherweise weit voraus, insbesondere wenn das Buch für C oder C ++ geschrieben wurde, da ein Buch aus dem Jahr 1998 mit ziemlicher Sicherheit gegen C ++ vor dem Standard geschrieben wurde.

Die richtige Referenz ist auch die Windows-API, nicht die Windows 32-API, da dieselbe API sowohl für Windows 32 als auch für Windows 64 gilt.

DeadMG
quelle
3

Ich habe festgestellt, dass das Programmieren von Windows immer noch nützlich ist. Dank der Betonung der Abwärtskompatibilität durch Microsoft scheinen alle wichtigen Dinge (Fensterhandles, Nachrichten, GDI usw.) immer noch relevant zu sein und werden in Petzold gut behandelt. (Wenn sich etwas zu drastisch ändert, werden zu viele vorhandene Windows-Programme beschädigt, und die große Anzahl vorhandener Windows-Programme ist ein großer Teil des Windows-Vorteils auf dem Markt.)

Es gibt bestimmte neue APIs wie die Setup-API , die Thread-Pool-API und GDI + sowie neue Themen wie das Arbeiten im Kontext der Benutzerkontensteuerung von Vista und 7. Es gibt auch einige einzelne neue Funktionen, die Petzold nicht behandelt, aber es ist einfach genug, bei Bedarf nach neueren Themen in MSDN zu suchen. Programmieren Windows deckt auch nicht COM ab, was ein großer Teil der Windows-Programmierung sein kann.

Beachten Sie, dass die von Petzold abgedeckte API auf niedriger Ebene und C-basiert ist. (Es gibt einige neuere APIs wie GDI + und einige der COM-Funktionen, die objektorientiert sind.) Praktisch jede moderne Entwicklung ist objektorientiert und verwendet häufig ein Framework wie .NET oder Qt oder Delphis VCL Ich werde selten vollständige Anwendungen schreiben, die wie der Beispielcode in Programming Windows aussehen . Es ist jedoch immer noch großartig, um zu erklären, was unter der Haube vor sich geht.

Ich habe mich vor einiger Zeit umgesehen und konnte keine neueren API-Referenzen finden. Ich vermute, dass dies an der Größe der aktuellen Windows-APIs liegt. Das Programmieren von Windows, 5th Edition, ist bereits fast 1500 Seiten lang. Ein Buch, das alles Neue behandelt, wäre zu umfangreich. Ich habe ein paar interessant aussehende Ergänzungen zum Programmieren von Windows gefunden , obwohl ich sie noch nicht gelesen habe:

  • Essential COM von Don Box - Einige der neuen APIs von Vista basieren auf COM, und Petzold behandelt COM nicht.
  • Windows-Systemprogrammierung von Johnson M. Hart - scheint das von Petzold so gut behandelte GUI- und GDI-Material vollständig zu überspringen, enthält jedoch viel mehr Details zu modernen Ansätzen wie Top-Multithreading, IPC usw.
  • Windows Internals von Russonovich, Solomon und Ionescu - weniger über APIs als vielmehr darüber, wie Windows unter der Haube funktioniert. Russonovich weiß möglicherweise mehr darüber als jeder andere innerhalb oder außerhalb von Microsoft.
Josh Kelley
quelle
0

Die Windows-API hat sich im Laufe der Jahre geändert. Es wurden völlig neue Funktionssätze (z. B. TaskDialog und Familie) sowie Ersetzungen für vorhandene Funktionen ( z . B. CreateWindowEx ) hinzugefügt .

Ich würde empfehlen, eine neuere Referenz zu konsultieren.

Powerlord
quelle
Hast du irgendwelche Vorschläge?
Gablin
Leider nein ... Ich bin nicht wirklich ein C / C ++ / WinAPI-Programmierer. Ich weiß nur von der Existenz dieser neueren Funktionen.
Powerlord
Sie wollen mir sagen, dass ein 20 Jahre altes Betriebssystem in diesem Zeitraum ganz neue Funktionen hinzugefügt hat?! mind = geblasen
MarcusJ
0

Der Taskplaner ist ebenfalls neu. Viele neue Objekte und Schnittstellen wurden hinzugefügt. Vor Task Scheduler 2.0 waren ungefähr 5 Objekte an der Planung von Aufgaben beteiligt. In 2.0 (eingeführt, als Vista herauskam) gibt es 20, kein Scherz, 20. Dies ist eines der nicht so großartigen Dinge an der Win32-Programmierung, aber es ist nicht so schlimm.

Ich liebe das Programmieren in Win32. Sie lernen so viel darüber, wie Windows und andere Betriebssysteme auf einer niedrigeren Ebene funktionieren, und es macht Sie zu einem besseren Programmierer, glaube ich. Wenn Sie in Python programmieren, erfahren Sie nicht, wie Verzeichnisse organisiert sind os.listdir(""). Verwenden Sie einfach . Wenn Sie jedoch FindFirstFile()& FindNextFilein win32 verwenden, entdecken Sie, wie Verzeichnisse organisiert sind, und entdecken Sie das versteckte ".." & "." Verzeichnisse und daraus können effizientere Möglichkeiten zum Katalogisieren und Durchsuchen von Verzeichnissen ergeben.

Win32-Ressourcen finden Sie unter http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics

user14321
quelle