Mi chiedo perché WinAPI sia così diverso dalla programmazione C "normale"? Intendo dire, a scuola ho imparato che ogni programma C ha una funzione main() (WinAPI usa WinMain con alcuni parametri speciali), alcuni tipi variabili come int, long, char ecc. (WinAPI usa cose come LPCSTR, BOOL , ecc.), quindi perché Microsoft ha deciso di andare in modo diverso con le proprie API del sistema operativo?Perché WinAPI è così diverso da "normale" C?
quando ho visto il mio primo programma WinAPI mi sembra più simile a un nuovo linguaggio per me ...;)
Inno - Non sono sicuro del motivo per cui MS utilizza #defines per molti dei loro tipi di variabile. Se vuoi sapere perché hanno deciso di farlo, manderei un'email a Charles Petzold. Se qualcuno lo sapesse, lo farebbe. –
@ J.Polfer: l'utilizzo di alias per i tipi di parametro è molto comune per il codice di libreria. Permette all'autore di modificare il tipo specifico nell'interfaccia mantenendo la compatibilità della fonte. Puoi ancora compilare un codice Windows a 16 bit valido per scegliere come target una versione a 64 bit di Windows, anche se i tipi sottostanti per es. 'WPARAM' o' LPARAM' sono cambiati più volte. 'BOOL' ha una storia diversa però: quando ha iniziato a lavorare su Windows, non c'era alcun tipo booleano nel linguaggio C. È stato introdotto fino a quando C99. – IInspectable