Evoluzione dell'API Win32 [chiuso]

11

L'API di Windows 32 è cambiata molto nel tempo? Il libro di Charles Petzold "Programming Windows, 5th Edition" del 1998 contiene ancora informazioni rilevanti, o la maggior parte è obsoleta / obsoleta?

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

    
posta fredoverflow 24.01.2011 - 21:37
fonte

4 risposte

4

La nuova API del pool di thread in Windows Vista è un serio miglioramento e un aiuto per programmi di thread multipli ben scritti, per un semplice esempio di come WinAPI si è evoluto. Tuttavia, la necessità di mantenere la compatibilità è stato un fattore trainante per mantenere le basi dell'API di Windows lo stesso e ha comportato alcune cose non ideali, come la predominanza di funzioni Ex come CreateWindowEx. Ci sono ancora funzioni compilabili contro Windows a 64 bit compatibili con i 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 prossime, 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 è Windows API, non API di Windows 32, poiché la stessa API governa sia Windows 32 che Windows 64.

    
risposta data 24.01.2011 - 22:05
fonte
3

Ho trovato Programmare Windows per essere ancora utile. Grazie all'accento posto da Microsoft sulla retrocompatibilità, tutto il materiale di base (handle di finestre, messaggi, GDI, ecc.) Sembra essere ancora pertinente ed è ben coperto in Petzold. (Se qualcosa è cambiato troppo drasticamente, interromperà 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 API di installazione , l' API del pool di thread e GDI+ , e ci sono nuovi argomenti come lavorare nel contesto di Vista e 7 UAC. Ci sono anche diverse nuove funzioni individuali, che Petzold non copre, ma è abbastanza semplice cercare gli argomenti più recenti su MSDN, se necessario. Programmare Windows non copre anche la COM, che può essere una parte importante della programmazione di Windows.

Tieni presente che l'API coperta da Petzold è di livello basso e C-based. (Ci sono alcune API più recenti, come GDI + e alcune delle cose di 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 scriverò raramente 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 un po 'di tempo fa e non sono riuscito a trovare riferimenti API più recenti. Sospetto che ciò sia dovuto alle dimensioni delle attuali API di Windows; Programmare Windows, quinta edizione è già lunga quasi 1500 pagine, un libro che riguardava qualcosa di nuovo sarebbe troppo grande. Ho trovato un paio di supplementi interessanti per Programmare Windows , anche se non li ho ancora letti:

  • Essential COM , di Don Box - Diverse delle nuove API di Vista sono basate su COM, e Petzold non copre COM.
  • Programmazione di sistema Windows , di Johnson M. Hart - sembra saltare interamente la GUI e Roba GDI che Petzold copre così bene, ma ha molti più dettagli sugli approcci moderni al multithreading, IPC, ecc.
  • Interni interni , di Russonovich, Solomon e Ionescu - meno sulle API e altro su come funziona Windows sotto il cofano. Russonovich forse ne sa di più di chiunque altro all'interno o all'esterno di Microsoft.
risposta data 25.01.2011 - 14:02
fonte
0

L'API di Windows è cambiata nel corso degli anni. Sono state aggiunte serie completamente nuove di funzioni (ad esempio: TaskDialog e famiglia) e sostituzioni per funzioni esistenti (ad esempio: CreateWindowEx ).

Consiglierei di consultare un riferimento più recente.

    
risposta data 24.01.2011 - 22:11
fonte
0

Anche l'Utilità di pianificazione è nuova, molti nuovi oggetti e amp; interazioni sono state aggiunte. Prima di Task Scheduler 2.0, c'erano circa 5 oggetti coinvolti nelle attività di sheduling. Nel 2.0 (introdotto quando uscì Vista), ci sono 20, non scherzi, 20. Questo è uno dei non grandi cose sulla programmazione Win32 ma non è così male.

Adoro programmare in win32 impari tantissimo su come Windows & altri SO operano ad un livello inferiore e amp; ti rende un programmatore migliore, credo. Se si programma in python, non si impara a sapere come sono organizzate le directory, basta usare os.listdir (""). Ma quando si utilizza FindFirstFile () & FindNextFile in win32 scopri come sono organizzate le directory, scopri il nascosto ".." & "" directory e amp; da quello possono venire modi più efficienti di catalogare & directory di ricerca.

Per le risorse win32 vai al link

    
risposta data 25.01.2011 - 04:33
fonte

Leggi altre domande sui tag