Iniziamo questo corso presentando l’ambiente di sviluppo Visual C++ della Microsoft e le nozioni di base che ci serviranno per riuscire a scrivere i primi programmi per Windows 95/98/NT (2000?)
Innanzitutto ci servirà una buona conoscenza del linguaggio C e dei concetti di base della sua naturale evoluzione: il C++. Cioè, l’importante è che sappiate scrivere un costrutto if senza andare a sfogliare il manuale e che abbiate una qualche esperienza di C++, va bene anche la lettura di un libro. Se non siete però tra questi non disperate! Infatti avrete modo comunque di migliorare le vostro conoscenze del linguaggio e comunque di avvalervi di un ambiente di sviluppo visuale che vi farà risparmiare la scrittura di circa il 70% del codice.
La versione del compilatore che utilizzeremo durante il corso è la 6.0, ma va bene qualunque versione dalla 4.2 in poi.
L’utilizzo del linguaggio C++, unito all’ambiente di sviluppo “visual”, ci permette un’enorme flessibilità, velocità e manutenibilità del codice che andremo a scrivere nonché la possibilità di programmare un’interfaccia utente in modo veramente elementare.
Nello scrivere i nostri programmi ci serviremo della libreria MFC (fornita con il Visual C++). Questa ci permette di programmare l’interfaccia Windows in modo molto semplice ma efficace, sgravandoci dall’onere di andare a sfogliare un pomo come la Win32 API Bible di 1600 pag. ogniqualvolta vogliamo richiamare una funzione del Sistema Operativo (S.O.). Queste funzioni sono chiamate appunto API e l’MFC (Microsoft Foundation Class) si pone proprio come strato isolante fra esse ed il programmatore. Ciò è sicuramente una fortuna vista la rapidità con cui esse si evolvono; in futuro i programmatori che scriveranno programmi richiamando direttamente le API del S.O. saranno visti come quelli che oggi programmano in assembly.
Per vedere qualcosa di concreto, iniziamo a creare la nostra prima applicazione in Visual C++.
Sembrerà stupefacente quando con pochi clic di mouse avremo un programma con barra di stato, barra degli strumenti, menu e perfino un help in linea!
Una volta aperto il Visual C++ (da ora in poi VC++) cliccare sulla voce new del menu file; cliccare ora sulla scheda Projects e quindi sulla voce MFC Appwizard(exe), digitare nella casella al lato il nome che daremo al programma ad esempio Prg1 e premere quindi il tasto Ok. Nella prossima schermata selezionare SingleDocument e cliccare quindi su Finish e poi su Ok per ridare la conferma dei file che il VC++ creerà per noi.
A questo punto il nostro primo programma è pronto, bisogna solo compilarlo; cliccare sulla voce Build Prg1.exe del menu Build o premere il tasto funzione associato (F7 di default). Ora il compilatore avrà mostrato l’output della compilazione nella finestra in basso dello schermo (se non è visibile premere Alt+2) e se è andato tutto a buon fine ci dirà qualcosa del genere:
—-Configuration: Prg1 – Win32 Debug—- Compiling resources… Compiling… StdAfx.cpp Compiling… Prg1.cpp MainFrm.cpp Prg1Doc.cpp Prg1View.cpp Generating Code… Linking… Prg1.exe – 0 error(s), 0 warning(s)
Ciò ci dice che il processo di compilazione e di linking è andato a buon fine e non ci resta quindi che eseguire il codice prodotto, per far ciò cliccare sulla voce Execute del menu Build o premere i tasti scorciatoia Ctrl+F5.
Provando ad utilizzare il programma ci si accorge ben presto, che non fa esattamente nulla, ma d’altronde in pochi secondi abbiamo avuto tutta l’infrastruttura di un programma completo con perfino le finestre per aprite e salvare i file nonché le funzionalità di stampa ed anteprima di stampa; non potevamo certo chiedere di più!
Una piccola ripassata sui concetti di compilazione e linking spero che non offenda chi già li conosce, ma sarò comunque breve: la fase di compilazione è la fase nella quale il codice sorgente viene convertito in codice oggetto (se non ci sono errori). I file oggetto sono file, con in genere estensione obj, i quali si trovano nelle directory Debug o Release e che contengono tutto il codice tradotto in linguaggio pseudo-assembler. A questo punto abbiamo tanti files oggetto che devono essere ‘incollati’ e a ciò pensa il linker che verifica anche che tutti i riferimenti di chiamate a funzioni siano presenti e corretti; il risultato finale del linking è un eseguibile (exe o dll).
Esplorando l’ambiente del VC++ vediamo che sulla sinistra è presente un riquadro con un raccoglitore a tre schede: c’è il ClassView che ci permette di navigare tra le classi del nostro programma, c’è il ResourceView che ci indica tutte le risorse grafiche come: finestre di dialogo, cursori, bitmap, icone… ed infine c’è il FileView che mostra tutti i files di cui è composto il nostro progetto organizzati in precise gerarchie in base alla loro funzione.
È tutto per questa prima parte e, mentre iniziate a esplorare le caratteristiche del Visual C++, vi saluto e vi rimando alla prossima, nella quale inizieremo a scrivere un programma che manda su schermo del testo e dei disegni e che ci permette anche di stampare il nostro lavoro.