Evoluzione dell'API Win32 [chiuso]


11

L'API di Windows 32 è cambiata molto nel tempo? Il libro di Charles Petzold "Programmazione di Windows, 5a edizione" del 1998 contiene ancora informazioni pertinenti o è in gran parte obsoleto / obsoleto?

Quali sono alcuni esempi importanti di recenti aggiunte all'API di Windows 32 (se ce ne sono)?

Risposte:


4

La nuova API del pool di thread in Windows Vista è un notevole miglioramento e un aiuto per programmi di thread multipli ben scritti, per un semplice esempio di come si è evoluto WinAPI. Tuttavia, la necessità di mantenere la compatibilità è stata un fattore trainante per mantenere le basi dell'API di Windows uguali e ha portato ad alcune cose non ideali, come la predominanza di funzioni Ex come CreateWindowEx. Ci sono ancora funzioni compilabili su Windows a 64 bit che sono compatibili con programmi a 16 bit.

Quel libro sarà ancora utile se si desidera scrivere programmi basati su WinAPI che eseguono funzioni comuni nel 1998, poiché è improbabile che l'API sia cambiata. Ovviamente, le migliori pratiche nella lingua di origine potrebbero essere le leghe a venire, specialmente se il libro è scritto per C o C ++, dal momento che un libro del 1998 è stato quasi certamente scritto contro il C ++ pre-standard.

Inoltre, il riferimento corretto è l'API di Windows, non l'API di Windows 32, poiché la stessa API governa sia Windows 32 che Windows 64.


3

Ho trovato la programmazione di Windows ancora utile. Grazie all'enfasi posta da Microsoft sulla compatibilità con le versioni precedenti, tutti gli elementi fondamentali (handle di finestre, messaggi, GDI, ecc.) Sembrano essere ancora rilevanti ed è ben coperto in Petzold. (Se qualcosa cambiasse troppo drasticamente, si spezzerebbero troppi programmi Windows esistenti e l'enorme numero di programmi Windows esistenti è una grande parte del vantaggio di Windows sul mercato.)

Esistono nuove API specifiche, come l' API di installazione , l' API del pool di thread e GDI + e ci sono nuovi argomenti come lavorare nel contesto dell'UAC di Vista e 7. Ci sono anche diverse nuove funzioni individuali, che Petzold non copre, ma è abbastanza facile cercare nuovi argomenti su MSDN, se necessario. Anche la programmazione di Windows non copre COM, che può essere una parte importante della programmazione di Windows.

Tieni presente che l'API coperta da Petzold è di basso livello e basata su C. (Ci sono alcune API più recenti, come GDI + e alcune delle cose COM, che sono orientate agli oggetti.) Praticamente qualsiasi sviluppo moderno sarà orientato agli oggetti e userà spesso un framework come .NET o Qt o VCL di Delphi, quindi tu raramente scriverò applicazioni complete che assomigliano al codice di esempio in Programmazione di Windows ; tuttavia, è comunque ottimo per spiegare cosa sta succedendo sotto il cofano.

Mi sono guardato in giro qualche tempo fa e non sono riuscito a trovare riferimenti API più recenti. Ho il sospetto che ciò sia dovuto alla dimensione pura delle attuali API di Windows; Programmare Windows, 5th Edition è già lungo quasi 1500 pagine, un libro che trattava qualcosa di nuovo sarebbe troppo grande. Ho trovato un paio di integratori dall'aspetto interessante per la programmazione di Windows , anche se non li ho ancora letti:

  • COM essenziale , di Don Box - Molte delle nuove API di Vista sono basate su COM e Petzold non copre COM.
  • La programmazione del sistema di Windows , di Johnson M. Hart, sembra saltare completamente le cose della GUI e GDI che Petzold copre così bene, ma ha molti più dettagli sugli approcci moderni come il multithreading, l'IPC, ecc.
  • Windows Internals , di Russonovich, Solomon e Ionescu - meno sulle API e più su come funziona Windows sotto il cofano. Russonovich probabilmente ne sa di più di chiunque altro all'interno o all'esterno di Microsoft.

0

L'API di Windows è cambiata nel corso degli anni. Sono stati aggiunti nuovi insiemi di funzioni (ad es. TaskDialog e famiglia) e sostituzioni per funzioni esistenti (ad es. CreateWindowEx ).

Consiglierei di consultare un riferimento più recente.


Hai qualche suggerimento?
gablin

Purtroppo no ... non sono proprio un programmatore C / C ++ / WinAPI. So solo dell'esistenza di queste nuove funzioni.
Powerlord,

Intendi dirmi che un sistema operativo di 20 anni ha aggiunto intere nuove funzioni in quel periodo di tempo ?! mind = blown
MarcusJ

0

Anche l'Utilità di pianificazione è nuova, sono stati aggiunti molti nuovi oggetti e interfacce. Prima di Task Scheduler 2.0, c'erano circa 5 oggetti coinvolti nelle attività di pianificazione. In 2.0 (introdotto quando è uscito Vista), ci sono 20, non scherzo, 20. Questa è una delle cose non eccezionali della programmazione win32 ma non è poi così male.

Adoro programmare in Win32, impari così tanto su come Windows e altri sistemi operativi funzionano a un livello inferiore e questo ti rende un programmatore migliore, credo. Se programmi in Python, non impari come sono organizzate le directory, basta usare os.listdir(""). Ma quando usi FindFirstFile()& FindNextFilein win32 scopri come sono organizzate le directory, scopri il nascosto ".." & "." directory e da quello possono trovare modi più efficienti per catalogare e cercare directory.

Per risorse win32 vai a http://groups.google.com/group/comp.os.ms-windows.programmer.win32/topics

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.