INTRO a MS Visual Studio 2008: LINEA di COMANDO

Documenti analoghi
INTRODUZIONE A VISUAL STUDIO

Introduzione a Visual Studio 2005

Fondamenti di Informatica T-1 CdS Ingegneria Informatica. Introduzione agli ambienti di sviluppo MS Visual Studio 2005/2008/2010 CodeLite 6.1.

Debug di un programma

MS Visual Studio: Linea di Comando

Linea di comando. Compilazione. Aprire una shell di DOS tramite:

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Introduzione a Visual Studio 2005

Università di Ferrara Facoltà di Ingegneria. Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Fondamenti di Informatica AA 2016/2017

PER UTILIZZARE LCC IN LAB

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Università di Ferrara. Facoltà di Ingegneria. Esercitazioni di

COSTRUZIONE DI UN APPLICAZIONE

Lab 01 Introduzione a Codelite

NOTE SULL USO DI ECLIPSE per la compilazione di programmi c

Il compilatore Dev-C++

Esplorare e modificare il file system Compilare con gcc Lanciare un programma da linea di comando

Introduzione alla compilazione ed esecuzione di programmi C con IDE Dev-C++

Unix e comandi di base

COSTRUZIONE DI UN APPLICAZIONE

Università di Ferrara Facoltà di Ingegneria. Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Esercitazioni di Fondamenti Informatica - Modulo A 1

L IDE NETBEANS. (slide: A. Baratè) Programmazione per la Musica Adriano Baratè

Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE

Fondamenti di Informatica II 6. Esercitazioni Laboratorio 1

Aprire MPLAB. Cliccare sull icona presente sul Desktop

Compilatori. g ++ prog.c. che crea il file eseguibile a.out. È utile conoscere alcune opzioni di g ++

Tecniche della Programmazione: Note sull uso del DEVC++

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

ISTRUZIONI DEVC++ Autore: Luca Florio (luca.florio<at>polimi.it)


Fondamenti di Informatica 9. Esercitazione in linguaggio C

Introduzione a CodeBlocks. Università degli Studi di Brescia Sergio Colosio

Informatica (A-K) 9. Esercitazione in linguaggio C

Lab 01 Introduzione a Codelite

Linguaggi Compilati vs. Interpretati

Creare un nuovo progetto. Marco Bonelli a.s. 2016/2017. San Secondo P.se I,T.I.S. G. Galilei Department of Computer Science.

PROGETTI SU PIU` FILE

FUNZIONI. Ivan Lanese

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file

Introduzione al DEV C++

Lab 01 Introduzione a Codelite

Programmazione I - Laboratorio

Fondamenti di Informatica L-A

PROGRAMMAZIONE A MODULI IN C++ MEDIANTE CODEBLOCKS

DEBUGGING. Ivan Lanese

Uso di GCC da riga di comando

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Tutorial su Codelite. Luca Ceriani 2011 Federico Cerutti

CORSO DI FORMAZIONE DOCENTI DELLE SCUOLE PUBBLICHE A GESTIONE PRIVATA ECDL, LA PATENTE EUROPEA PER L USO DEL COMPUTER GUIDA SINTETICA

2 Lavorare con Eclipse

IDE DevC

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 01. Introduzione a Codelite. Lab01 1

Corso sul linguaggio Java

Laboratorio di Informatica

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas

14Ex-Cap11.qxd :20 Pagina Le macro

Comandi principali di Linux (1)

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

I TUTOR. Massimiliano Cattafi Ilaria Laurenti

Laboratorio di Informatica

1 Installazione di Mingw e conseguente configurazione di TextPad

Sas OnDemand for Academics & SAS e-learnings. Metodi Quantitativi per Economia, Finanza e Management

Progetti su più File Sorgenti

Certification Authority del Consiglio Nazionale del Notariato. Configurazione postazione PC per Windows 7, 8 e 10 Manuale Utente

deve conoscerne solo l interfaccia:

Fondamenti di Informatica Ingegneria Biomedica A.A. 2017/18

Installazione Java Standard Edition (SDK)

Linguaggio di Riferimento: C

Fondamenti di Informatica T2 Modulo 2

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

DISPENSA ACCESS (OFFICE 2010 BETA)

per ulteriori informazioni consultare la guida disponibile on line all indirizzo:

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

STRUTTURA DI UN PROGRAMMA

PROCEDURA D INSTALLAZIONE DEL SOFTWARE DELLA CARTA TS-CNS. OBERTHUR su Windows 32 bit e 65 bit

Creazione macchina virtuale con WMware Player

ADaMSoft. Procedure per l installazione del software in ambiente Microsoft Windows 3/6/2008. Powered by:

Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012

Utilizzo delle Maschere in Microsoft Access

Installazione dell SDK sotto Windows

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Questo materiale è reperibile a questo indirizzo:

Debugger. Marco Alberti Programmazione e Laboratorio, A.A

Integrated Development Environment (IDE) DevC Manuale utente

Imagicle Hotel. Guida alla configurazione delle centrali Alcatel OXO fino alla Rel. 5.x 6.x

GRAFICO DI PARETO. variabile rispetto a cui si vuole ordinare (ossia nel nostro esempio

Elenchi numerati. Il procedimento per gli elenchi numerati è simile: o l icona o la finestra del menu formato

Foglio elettronico Microsoft Office Excel 2003

Transcript:

INTRO a MS Visual Studio 2008: LINEA di COMANDO Aprire una shell di DOS tramite: Start MS VisualStudio 2008 Visual Studio Tools è una normale shell di DOS con aggiunte al path ed alle variabili d ambiented Digitare cl /? per visualizzare i vari comandi Per COMPILARE, digitare il nome del compilatore (cl( cl) seguito dallo switch /c e da tutti i file.c da compilare Lo switch indica al compilatore di compilare vengono creati i file oggetto ad esempio: cl /c sourcefile.c 1

FASE di COLLEGAMENTO (Linking) Digitare il nome del linker (link( link) ) seguito dal nome di tutti i file oggetto (.obj) da collegare Il linker genera un eseguibile avente nome uguale al file.obj contenente main() ed estensione.exe Per dare un nome diverso all eseguibile utilizzare lo switch /out:nomedelfile Es: link sourcefile.obj /out:eseguibile.exe 2

Hello World!: COMPILAZIONE Creare un file di testo vuoto di nome Hello.c (ad es. usando Notepad) Digitare il programma: #include <stdio.h> int main() { printf( Hello World! ); } Aprire la shell di MS VS Digitare: cl /c hello.c Compilatore genera un file hello.obj Il file generato non è ancora eseguibile poiché non è ancora stato collegato con le librerie di sistema Invocare il linker. Digitando che cosa? 3

HEADER FILE Gli header file contengono dichiarazioni di variabili e funzioni di un modulo Le definizioni sono contenute da qualche altra parte Tipicamente si lavora con coppie (NomeModulo.h, NomeModulo.c) dove file.c contiene definizioni di ciò che è stato dichiarato in file.h Nelle situazioni semplici in cui tutti i file.h e.c si trovano nello stesso direttorio, il compilatore (meglio, il preprocessore) è in grado di trovare da solo tutti i file.h utili In che modo? 4

Perché HEADER FILE? In qualche caso è necessario distribuire librerie e nascondere il codice (vedi distribuzione Linux): : che cosa si distribuisce? basta distribuire il solo risultato della compilazione (.obj) più i file header (.h) necessari per compilare altro codice che si basa sui contenuti nella libreria distribuita Non è indispensabile distribuire il codice sorgente contenuto nei file.c 5

Si supponga che il modulo sia composto da un file header (mymod.h) e un file sorgente (mymod.c) cl /c mymod.c Si ottiene un file mymod.obj file oggetto,compilato ma non eseguibile (è( un modulo e non ha entry point ovvero main) è possibile distribuire il modulo dando solo mymod.h (con le dichiarazioni) e mymod.obj (con il codice compilato) SOLO COMPILAZIONE Chi vuole utilizzare il modulo deve: Fare riferimento a mymod.h per le dichiarazioni Utilizzare mymod.obj in fase di link 6

COMPILAZIONE + LINKING In realtà il compilatore cl è in grado di invocare automaticamente anche il linker basta evitare di specificare lo switch /c che impedisce il link automatico cl listafilesorgenti.c Un file oggetto per ogni file sorgente (come prima) Un file eseguibile avente nome uguale al nome del file sorgente contenente entry point (main) Oppure: cl listafilesorgenti.c /o run.exe Idem come sopra + nome eseguibile come specificato invoca lo switch /out:nomeeseguibile del linker 7

UTILIZZO di MODULI COMPILATI cl myprog.c c:/moduli/obj/mymod.obj /I c:/moduli/header /o eseg.exe Si compila il file myprog.c che fa riferimento all header mymod.h che viene trovato nel direttorio degli header file specificato si utilizza mymod.obj per il link e si ottiene come risultato eseg.exe 8

MS Visual Studio: IDE In Visual Studio, ogni programma si sviluppa come un progetto Un progetto contiene tutte le informazioni utili/necessarie per realizzare il programma Elenco dei file sorgenti che compongono quel programma Opzioni particolari relative allo specifico progetto A volte un programma usa funzionalità offerte da un altro programma In tal caso, è utile avere due progetti separati (uno per ogni programma) ma è utile anche raggruppare i programmi secondo criteri di utilizzo (il programma A usa il programma B) secondo criteri di affinità funzionali (i programmi A e B svolgono compiti molto simili) secondo criteri di composizione (i programmi A e B condividono lo stesso componente) 9

MS Visual Studio: SOLUTION e PROJECT Solution è un insieme di progetti, raggruppati secondo qualche criterio o esigenza Solution è composta da: uno o più progetti opzioni particolari relative alla specifica solution Vantaggi: Riusabilità dei singoli progetti Modularità nella realizzazione della Solution In Visual Studio, ogni progetto è parte di almeno una solution. Quindi, nell ambito di questo corso: Ogni programma sarà un progetto diverso Per ogni progetto, una Solution distinta, contenente solo quel progetto 10

MS Visual Studio: LINGUAGGIO C Visual Studio a default supporta il linguaggio C++, non direttamente il linguaggio C C++ è un estensione del C È possibile usare Visual Studio per realizzare programmi in C però è necessario specificare nelle opzioni di progetto che si sta scrivendo un programma in linguaggio C!!! Altrimenti: Il compilatore non rileva alcuni errori Può segnalare errori inconsistenti con le regole del linguaggio C 11

MS Visual Studio: LINGUAGGIO C Per creare progetti C, due alternative: 1.Creare un progetto nuovo a) Si specifica di voler creare un progetto Visual C++ / Win32 / Win32 Console Application b) Si specificano le opzioni particolari per il linguaggio C 2. Si riutilizza un progetto vuoto già esistente Nel sito Web del corso sono disponibili progetti vuoti già configurati, sia per Visual Studio 2005 che per Visual Studio 2008 Nell ambito di questo corso, usate sempre il progetto vuoto già pronto! 12

SCHERMATA PRINCIPALE Solution Explorer Compile and Debug Palette Source files Additional windows 13

Solution Explorer Mostra elenco progetti e file appartenenti ad ogni progetto Source files SCHERMATA PRINCIPALE Mostra file aperti, ogni file in un tab separato Additional Windows Mostrano alcune finestre ausiliarie molto importanti, quali: Output : messaggi di errore o successo dell IDE Error List : elenco errori e warning rilevati in fase di compilazione. Cliccando su un errore, viene aperto file corrispondente, nel punto dell errore presunto Compile e Debug Palette Contengono i pulsanti per compilare e per fare il debugging di un programma 14

ERROR LIST WINDOW Contiene la lista degli errori e warning rilevati dal compilatore Gli errori sono situazioni gravi, che rendono impossibile compilare il programma I warning sono situazioni in cui qualcosa di strano è stato rilevato dal compilatore, che però riesce a compilare comunque, ma spesso sono sintomi di errori non trascurabili Un programma ben fatto, al momento della compilazione: Non contiene errori Non genera warning 15

AGGIUNGERE FILE A UN PROGETTO 1. Selezionare la cartella relativa a un file header o un file sorgente 2. Tasto dx Add New Item (oppure Menu File New) 3. Si apre la finestra di creazione file Selezionare Visual C++ Code Poi scegliere la creazione di un header file (.h) o di un file sorgente (.cpp) NOTA: nel secondo caso, specificare esplicitamente oltre al nome anche l estensione.c 16

COMPILAZIONE/LINKING Menu Build Build All = compilazione + linking di tutti progetti build = compilazione +linking compilazione linking Per verificare i warning 17 selezionare Rebuild Project

ESECUZIONE DI UN PROGRAMMA Esegue un programma in modalità Debug Si ferma solo in presenza di un breakpoint Come possiamo capire se un programma è corretto? Innanzitutto deve poter essere compilato senza errori e senza messaggi di warning Prevedere l output di un programma e controllare eseguendo che tale output corrisponda 18

DEBUGGING Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal compilatore in fase di compilazione Errori semantici, difficilmente rilevabili Esempio: un programma deve eseguire la somma di due numeri, ma il programmatore in un momento di distrazione ha usato il simbolo di operazione - invece del simbolo + CONSEGUENZE: il programma è sintatticamente corretto, ma non esegue ciò che è stato richiesto 19

DEBUGGING L ambiente di sviluppo mette a disposizione una serie di funzionalità per: Eseguire passo passo ogni istruzione Controllare lo stato del nostro programma Visualizzare il contenuto delle variabili (monitoraggio) Visualizzare lo stack delle chiamate a funzione (imparerete presto che cosa significa ) Premere icona play per lanciare il programma. Il programma viene lanciato in modalità debug (a indicare che è ancora sotto test) Da un punto di vista dell esecuzione non cambia niente, ma possibilità di andare a controllare codice istruzione per istruzione 20

PASSI DI DEBUG È possibile controllare l esecuzione istruzione per istruzione (usando uno dei tasti step ) Basta premere uno di essi per lanciare il programma passo passo (al posto di play ) E se l istruzione chiama una funzione? Step Into continua il debug entrando nel codice della funzione Step Over continua il debug ripartendo dal punto immediatamente successivo alla chiamata di funzione (ovvero esattamente dopo restituzione del valore) Se sono all interno di una funzione, con Step Out posso continuare il debug all istruzione che segue return della funzione 21

BREAKPOINT Cominciare il debug dall inizio del programma può essere scomodo Possiamo inserire dei breakpoint Punti del programma che ci interessa monitorare Il programma esegue normalmente fino al breakpoint, poi passa in modalità debug Breakpoint Click per aggiungerne uno 22

BREAKPOINT Una volta bloccata l esecuzione al raggiungimento di un breakpoint si può decidere Di continuare l esecuzione normalmente fino al prossimo breakpoint (pulsante play ) Di continuare il debug istruzione per istruzione (con uno dei vari step ) Nota: i breakpoint possono essere associati a condizioni e altre proprietà configurabili (es: si può indicare di attivare il breakpoint solo se una certa variabile è uguale a 0) Menu Debug Windows Breakpoints apre la finestra di configurazione e definizione dei vari breakpoint 23

MONITORAGGIO VARIABILI Tre finestre di monitoraggio delle variabili Auto Visualizza il contenuto delle variabili definite all interno dello scope corrente (e anche il valore di ritorno all uscita da una funzione) Es: valore della variabile a prima dell inizializzazione Local Visualizza il contenuto delle variabili locali, ovvero tutte quelle visibili all interno della funzione corrente (nota: in caso di scope innestati con variabili con lo stesso nome, compaiono ripetizioni) Watch Permette di inserire il nome della variabile da monitorare (attenzione agli scope) È possibile anche monitorare espressioni (es: a+b) 24

CALL STACK Permette di visualizzare stack delle chiamate a funzione Alla chiamata di una funzione viene aggiunta una riga che mostra il valore dei parametri attuali All uscita di una funzione rimozione della riga (in cima) È possibile selezionare una qualsiasi delle righe, e le finestre di monitoraggio delle variabili recuperano lo stato corrispondente Provare con funzioni ricorsive! Call stack del fattoriale ricorsivo 25

ESERCIZIO Creare un nuovo progetto per il linguaggio C (a tal scopo, utilizzare il progetto vuoto disponibile sul sito del corso) Nel file sorgente main.c, scrivere il seguente codice: #include <stdio.h> #include <stdlib.h> int main() { int a; a = 2+3; printf( Hello world! ); a = a-3; system( PAUSE ); } Compilare il programma Eseguire il programma Settare un break point all istruzione a= 2+3; Rieseguire il programma utilizzando il debug e verificare che cosa succede a ogni istruzione 26

Che Cosa Fare Se... non compare il Solution Explorer 1. Menù View 2. Selezionare la voce Solution Explorer non compare la finestra Output in basso 1. Menù View 2. Selezionare la voce Output non compare la finestra Error List in basso 1. Menù View 2. Selezionare la voce Error List non compare la Build Palette 1. Tasto destro mouse in punto qualunque barra bottoni o menu 2. Selezionare la voce Build non compare la Debug Palette 1. Tasto destro mouse in punto qualunque barra bottoni o menu 2. Selezionare la voce Debug 27

CREARE un PROGETTO per LINGUAGGIO C Visual Studio supporta il C++ Visual Studio supporta in modo non diretto anche il C Per creare un nuovo progetto: 1. Si crea un nuovo progetto C++ 2. Si configura tale progetto in maniera opportuna per il linguaggio C 28

CREARE un NUOVO PROGETTO C++ 1.a) New project button 1.b) Selezionare Visual C++ 1.c) Selezionare categoria Win32 1.d) Come tipo di progetto, selezionare Win32 Console Application 1.e) Specificare nome di progetto 1.f) Specificare dove salvare il progetto 1.g) Cliccare OK 29

CREARE un NUOVO PROGETTO C++ 1.h) Configurare correttamente il progetto in questa schermata cliccare Next > 30

CREARE un NUOVO PROGETTO C++ 1.i) Scegliere come Application type ancora Console application 1.j) Selezionare come Additional options la voce Empty Project 1.k) Cliccare su Finish 31

CONFIGURARE un PROGETTO per il C Aggiungere al progetto vuoto un nuovo file di nome main.c, che al suo interno contenga una funzione di nome main Il progetto è ancora configurato per C++ ma in virtù della parentela tra C e C++, Visual Studio compila ed esegue tale progetto in maniera corretta Perchè devo aggiungere ulteriori configurazioni per il solo C? Visual Studio controlla la sintassi del nostro programma come se fosse C++ alcune istruzioni non sono parte del linguaggio C, ma solo di C++, e quindi non vengono segnalate come errori (invece in C lo sono!) Visual Studio segnala poi alcune istruzioni lecite in C con warning poichè in C++ tali istruzioni non si usano più (ma sono supportate per retro-compatibilità) 32

CONFIGURARE un PROGETTO per il C È sufficiente aggiungere due configurazioni particolari: 1. Specificare l uso del solo linguaggio C: in questo modo Visual Studio verificherà automaticamente che il programma sia effettivamente scritto in C e non in C++ 2. Specificare di non segnalare come warning l uso di alcune istruzioni particolari, che in C++ sono considerate deprecated, ma in C (e in questo corso) saranno utilizzate frequentemente 33

CONFIGURARE un PROGETTO per il C 2.a) Scegliere la voce Project del menu e poi la voce Properties 34

CONFIGURARE un PROGETTO per il C 2.b) Nella finestra Property Pages del progetto, selezionare voce Configuration Properties 2.c) Poi la voce C/C++ 2.d) Poi la voce Advanced 2.e) Modificare la proprietà Compile as : il valore da selezionare è Compile as C Code (/TC) 35

CONFIGURARE un PROGETTO per il C 2.f) Nella finestra Property Pages del progetto, selezionare voce Configuration Properties 2.g) Poi la voce C/C++ 2.h) Poi la voce Command Line 2.i) Aggiungere nella casella Additional options l opzione /wd4996 2.j) Cliccare su OK 36