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:
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