Găsiți aici o gamă mai largă de tutoriale și explicații pentru folosirea Visual Studio. În continuare, prezentăm câteva aspecte generale care vă sunt necesare pentru lucrul cu platforma Windows pentru laborator și teme.
Termen | Explicație |
Solution (.sln) | Fișier cu extensia .sln care conține mai multe proiecte. De exemplu, pentru fiecare laborator Windows, vi se furnizează un fișier .sln (soluție) care conține câte un proiect pentru fiecare exercițiu de laborator. |
Project | Colecție de fișiere sursă și headere care pot fi compilate împreună pentru a obține un singur executabil. |
Ce? | Cum? |
Creare proiect nou | File→New→Project |
Adăugare fișier nou la proiect | Select Source Files→Click dreapta→ Add → New Item |
Adăugare fișier existent la proiect | Select Source Files→Click dreapta→ Add → Existing Item |
Deschidere proiect existent | Selectare .sln → Click dreapta → Open with → Microsoft … |
Compilare Solution | Selectare tab Build → Build Solution Alternativ: F7 |
Compilare Proiect | Selectare nume proiect din Solution Explorer→ Selectare tab Build → Build <nume proiect> |
Setare Start-up Project | Selectare nume proiect din Solution Explorer → Click dreapta → Set as Start-up Project |
Rulare proiect | Selectare tab Debug → Start without Debugging Alternativ: Ctrl + F5 |
Rulare proiect specific | Selectare proiect ca startup project |
Rulare proiect cu debugger | Selectare tab Debug → Start Debugging Alternativ: F5 |
Adăugare/Ștergere breakpoint | Click pe linia cu instrucțiunea + F9 |
Next step pentru debugger | F10 |
Continue pentru debugger | F5 |
Deschidere PowerShell din VS | Selectare tab Tools→PowerShell Command Prompt |
Rulare Aplicație din PowerShell | Selectare tab Tools→PowerShell Command Prompt→ .\<nume-proiect>.exe |
Rulare Aplicație din Cygwin | Deschidere Cygwin→ cd “<Cale catre Proiect>/Debug”→./<nume-proiect>.exe |
Sugestii de completare | Ctrl+Space |
Căutarea definiției unei funcții/variabile | Click dreapta → Goto definition |
Aplicația cu care vom lucra în cadrul laboratorului de Sisteme de Operare pentru platforma Windows este Microsoft Visual C++ 2010 Express. În cadrul mașinii virtuale de laborator, această aplicație este deja instalată și se poate găsi pe Desktop.
Pentru a crea un proiect nou, apăsați File→New→Project. Se va deschide o fereastră precum cea de mai jos.
În fereastra nou deschisă, selectați Win32 Console Application (în partea de sus a imaginii, în chenar roșu) și completați informațiile referitoare la numele proiectului, precum și la locația în care se va afla proiectul. Apăsați OK.
Apăsați butonul Next pentru a intra în meniul de configurații al aplicației. Se va deschide o fereastră nouă, similară celei de mai jos.
În fereastra de configurări ale aplicației, asigurați-vă că alegeți “Console application” ca tip de aplicație (Application type) și “Empty project” ca setări adiționale ale proiectului (Additional options) deoarece dorim ca să adăugăm sursele noastre proprii. Pentru a finaliza crearea proiectului, apăsați butonul “Finish”.
În acest moment, am creat un proiect nou, dar care nu are fișiere sursă sau headere. Fișierele corespunzătoare soluției, respectiv proiectului, se găsesc în locația specificată la creare. În cazul exemplului de mai sus, calea dată a fost: C→Users→Documents→Visual Studio 2010→Projects, ca în imaginea de mai jos.
În continuare, vom analiza componența proiectului din ierarhia de fișiere:
În mod uzual, un proiect are 4 secțiuni vizibile din cadrul Solution Explorer (vezi poza de mai jos):
Atenție! Fișierele din External Dependencies sunt adăugate automat de către editor și nu pot fi șterse.
Pentru a adăuga un fișier nou în proiect, selectați secțiunea dorită (Header Files/Resource Files/Source Files), apăsați click dreapta și alegeți Add→New Item.
De exemplu, pentru adăugarea unui fișier sursă nou, numit print.c, selectați Source Files și, folosind click dreapta, alegeți Add→New Item. Alegeți C++ File ca tip de fișier și numele fișierului.
Pentru a adăuga un fișier existent la proiect, selectați secțiunea dorită din cadrul Solution Explorer (Header Files, Resource Files sau Source Files) și, folosind click dreapta, alegeți Add→Existing Item. Folosind explorerul deschis, alegeți fișierul dorit.
În imaginile de mai jos este exemplificat modul prin care se adaugă un fișier sursă nou în cadrul unui proiect.
De cele mai multe ori, atât la laboratoare, teme, cât și în industrie, veți lucra cu proiecte deja existente.
Pentru a deschide un proiect existent, se poate alege una din variantele următoare:
La prima deschidere a unui proiect existent (mai ales dacă este un proiect mai vechi), este posibil să apară o etapă de conversie a acestuia. În acest caz, navigați prin ferestrele de configurare folosind Next și/sau Finish.
Un fișier .sln conține unul sau mai multe proiect. În cazul în care există mai multe proiecte, fișierul .sln (Solution) trebuie să conțină un proiect principal (Start-up Project) care să fie rulat în mod implicit.
În imaginea de mai jos, fișierul .sln numit lab02-win.sln conține 4 proiecte (Solution ‘lab02-win.sln’ (4 projects): 1-cat, 2-crc, 3-ls, 4-trouble. Proiectele au aceiași împărțire logică asemeni majorității proiectelor Visual Studio: External Dependencies, Header Files, Resource Files, Source Files. Proiectul principal (Start-up project) este cel al cărui nume este îngroșat, în cazul prezentat fiind vorba de proiectul 1-cat.
Pentru a compila toate proiectele din fișierul .sln, accesați tab-ul Build și alegeți “Build Solution”. Alternativ, puteți folosi ca scurtătură tasta F7.
Deoarece compilarea mai multor proiecte poate consuma destul de mult timp, se poate alege varianta de compilare a unui singur proiect. Pentru aceasta, trebuie să selectați proiectul dorit din Solution Explorer și puteți folosi una din următoarele variante:
În imaginea de mai jos este exemplificat un fișier .sln care are mai multe proiecte. Pentru compilarea întregii colecții de proiecte se va alege “Build Solution”/F7 din meniu. Pentru compilarea individuală a unui proiect, în cazul prezentat 2-crc, selectați proiectul 2-crc din Solution Explorer și alegeți Build 2-crc din meniul Build al aplicației Microsoft Visual C++ 2010 Express.
Pentru a seta un proiect ca proiect de pornire (StartUp Project), selectați numele proiectului din Solution Explorer, apăsați click dreapta și alegeți “Set as StartUp Project”.
În imaginea de mai jos, dorim să setăm proiectul 2-crc ca proiect de pornire.
O aplicație compilată folosind Visual Studio Poate fi rulată în mai multe moduri:
Atenție! Dacă sunt mai multe proiecte în cadrul fișierului .sln, în mod implicit va rula proiectul de pornire (StartUp Project). Pentru a rula un proiect care nu este proiect de pornire, acesta trebuie setat ca StartUp Project.
În imaginea de mai jos, proiectul ProiectSO a fost compilat din cadrul aplicației Microsoft Visual C++ 2010 Express. Pentru rularea executabilului din linia de comandă, rulăm “.\ProiectSO.exe”.
Atenție! Observați calea în care se află exercutabilele compilate: folderul Debug aflat în cadrul locației colecției de proiecte (în cazul de față, ProiectSO, în care se află fișierul ProiectSO.sln).
Visual Studio permite opțiunea de a face debugging unui program. Pașii pentru a utiliza debuggerul din cadrul Microsoft Visual C++ 2010 Express sunt următorii:
Pentru a adăuga un breakpoint, click pe linia la care doriți să adăugați breakpoint-ul și apăsați tasta F9 SAU apăsați din cadrul aplicației pe bara gri din stânga codului, în dreptul liniei de cod dorite. În exemplul de mai jos, am adăugat un breakpoint la linia 4 a fișierului hello.c, la intrarea în funcția add.
Din meniul Debug al Microsoft Visual C++ 2010 Express, alegeți “Start Debugging” (Alternativ, folosiți F5).
În urma rulării programului în modul debugging, execuția programului va fi suspendată la prima instrucțiune din flow-ul de execuție care conține un breakpoint setat. În acest moment, în fereastra editorului de text, există o secțiune în care se pot adăuga variabilele a căror evoluție dorim să le verificăm. În exemplul de mai jos, am adăugat parametrii a, b și c ai funcției add, precum și variabila locală sum. Puteți observa valorile cu care a fost apelată funcția (a=2, b=3, c=o adresă de pe stivă care indică spre o valoare neinițializată), precum și faptul că nu s-a alocat încă variabila locală sum.
Pentru continuarea execuției, puteți alege din meniul Debug, opțiunea Continue (sau F5). Aceasta va continua execuția până la întâlnirea următorului breakpoint sau până la finalizarea programului.
Pentru a continua execuția step-by-step, alegeți din meniul Debug opțiunea Step Over (sau F10). Observați săgeata galbenă care indică instrucțiunea următoare, precum și cum se modifică variabilele monitorizate.