Introduzione alle API Win32

Capitolo 2: disimparare ancora

La prima funzione standard che non potete utilizzare è int main(int argc, char* argv[]), cioè proprio quella che, in C standard, costituisce il punto d'ingresso del vostro stesso programma. Un programma Win32 inizia invece, nello stesso senso in cui uno C standard inizia da "main" ecc, dalla vostra funzione:

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { // inserire qui il vostro programma return 0; }

La macro WINAPI indica una funzione che adotta la convenzione di chiamata standard di Windows (originalmente tipica del Pascal, e diversa da quella abituale del C); dovremo usarla noi stessi quando definiremo funzioni che Windows chiama (come in questo caso), e Windows la usa regolarmente (la wsprintf suaccennata è una delle pochissime eccezioni). (Esistono, secondo anche le versioni esatte di SDK, tante altre macro sinonime di questa, come PASCAL, STDCALL, CALLBACK, eccetera, tutte con lo stesso effetto).

Il tipo HINSTANCE, e i due argomenti che lo usano, non hanno per ora importanza, e poca ne ha pure, sempre per ora, nCmdShow. Invece, l'argomento lpCmdLine è l'intera "linea di comando" passata al nostro programma, l'equivalente dell'intero array argv[] del main dello standard C; se vogliamo esaminare gli argomenti come parole separate, in Windows, dovremo "spezzare" noi stessi questa stringa (e NON con una semplice strtok, perchè essa non rispetta la convenzione relativa alle virgolette per "tenere assieme" un argomento, anche contenente spazi!).

Il valore tornato dal nostro programma, come in Standard C, sarà un eventuale "codice d'errore", o 0 per indicare "OK".

La seconda importante funzione C che dovete disimparare è printf, per emettere output (e così pure altre come puts, ecc, e quelle di input-standard come getchar, gets, ecc). In Win32 non avete il file "standard output" (stdout) a disposizione, e neppure stdin, lo "standard input". (Potete invece, volendo, continuare ad usare funzioni di input/output su file, come fopen, fprintf, fclose, eccetera; le API propongono altri modi di accedere ai file, ma l'approccio standard C, che pure funziona, in molti casi può risultare più comodo).


Capitolo 1: disimparare
Capitolo 3: un minimo di I/O
Elenco dei capitoli