Sunteți pe pagina 1din 7

Lec\ia 1.

Structura unui proiect Visual C++2008


1.1. Obiectivele lec\iei

instalarea mediului integrat Visual C++2008;


generarea unui proiect minimal.

1.2. Resurse necesare


Pentru instalarea mediului integrat Visual C++2008 se utilizeaz[ CD-ul Visual Studio 2008 Express
Edition SP1.

1.3. Instalarea mediului integrat Visual C++2008


Se introduce CD-ul de instalare ]n unitatea CD-ROM. Din meniul Setup se alege op\iunea Visual C++
2008 Express Edition (fig. 1.1).

Figura 1.1. Meniul Setup.


Op\ional, se poate instala =i MSDN Express Library (MSDN\msdnixp.exe).

1.4. Generarea unui proiect minimal


Se lanseaz[ Microsoft Visual C++ 2008 =i, ]n meniul File, se selecteaz[ New Project.
}n fereastra New Project se selecteaza op\iunea Windows Forms Application (fig. 1.2).

Figura 1.2. Fereastra New Project.

L1.1

Lec\ia 1. Structura unui proiect Visual C++2008


Se completeaz[ c`mpul Name cu Lectia1, c`mpul Location cu directorul de lucru, se de-bifeaz[
optiunea Create directory for solution =i se apas[ butonul OK.
Pe ecran apare fereastra proiectului Lectia1 (fig 1.3).

Figura 1.3. Fereastra proiectului Lectia1.


Se modific[ op\iunea de compilare a proiectului din Debug ]n Release (fig 1.4).

Figura 1.4. Modificarea op\iunii de compilare.

L1.2

Lec\ia 1. Structura unui proiect Visual C++2008


}n meniul Tools se selecteaz[ Options
}n fereastra Options, sec\iunea TextEditorC/C++Tabs, se selecteaz[ Smart Indenting =i
Insert spaces.

Figura 1.5. Fereastra Options.


Se execut[ click dreapta ]n fereastra Form1 =i ]n meniul Properties se modific[ proprietatea Text din
Form1 ]n Lectia1 (fig. 1.6).

Figura 1.6. Modificarea propriet[\ii Text.


}n acest moment, au fost generate automat mai multe fi=iere asociate proiectului, prezentate ]n fereastra
Solution Explorer (fig. 1.7).
Din punctul de vedere al utilizatorului, cel mai important fi=ier al proiectului este Form1.h.
Aici este locul unde utilizatorul face majoritatea modific[rilor necesare realiz[rii proiectului dorit.

L1.3

Lec\ia 1. Structura unui proiect Visual C++2008

Figura 1.7. Fereastra Solution Explorer.


Con\inutul fi=ierului Form1.h poate fi vizualizat ]n dou[ moduri.
Primul mod, numit Design, prezint[ cum va ar[ta forma ]n timpul execu\iei programului.
Al doilea mod, numit Code, prezint[ codul (programul surs[ ]n C++) asociat formei.
Trecerea dintr-un mod de afi=are ]n altul se face cu butoanele View Code =i View Designer din
fereastra Solution Explorer (fig. 1.8).

Figura 1.8. Selec\ia modului de afi=are a formei.


Vom ad[uga formei Lectia1 trei obiecte: dou[ butoane =i o fereastr[ text.
Butonul (Button) este un obiect care genereaz[ un eveniment atunci c`nd utilizatorul executa click pe
el.
Fereastra text (TextBox) este un obiect ce permite introducerea unui text de la tastatur[, afi=area unui
text generat de un eveniment, etc. Este un obiect complex care ofer[ func\iile de baz[ pentru editarea
textului (Copy, Cut, Paste, Select All, etc.).
Din meniul Toolbox se selecteaz[ obiectul Button =i se deseneaz[ butonul ]n fereastra Lectia1
(fig.1.9).

Figura 1.9. Meniul Toolbox.


Se modific[ proprietatea Text a butonului din button1 ]n Test =i proprietatea Name din button1 ]n
btnTest (fig.1.9).
Asem[n[tor, se creeaz[ un alt buton cu textul Sterge =i numele btnSterge.
L1.4

Lec\ia 1. Structura unui proiect Visual C++2008

Figura 1.10. Modificarea propriet[\ilor Text =i Name.


Acum forma trebuie s[ arate ca ]n figura 1.11.

Figura 1.11. Forma Lectia1 ]n mod Design.


Din meniul Toolbox se selecteaz[ obiectul TextBox =i se deseneaza o fereastr[ text ]n forma
Lectia1.
Se modific[ proprietatea ScroolBars din None ]n Both =i proprietatea Multiline din False ]n True.

Figura 1.12. Forma cu dou[ butoane =i o fereastr[ text.

L1.5

Lec\ia 1. Structura unui proiect Visual C++2008


}n continuare vom defini ac\iunile declan=ate de evenimentele buton ap[sat (button click) pentru
cele dou[ butoane.
Se d[ dublu-click pe butonul Test.
Mediul integrat afi=eaz[ automat codul asociat formei =i genereaz[ un =ablon pentru func\ia
btnTest_Click.
Se completeaz[ func\ia astfel:
/**********************************************************************************
Buton Test
Afiseaza in fereastra textBox1 mesajul "Hello world !"
**********************************************************************************/
private: System::Void btnTest_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox1->AppendText("Hello world !\r\n");
}//end btnTest_Click

Se apas[ butonul View Designer =i se d[ dublu click pe butonul Sterge.


Se completeaz[ func\ia btnSterge_Click astfel:
/**********************************************************************************
Buton Sterge
Sterge fereastra text
**********************************************************************************/
private: System::Void btnSterge_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Text = "";
}//end btnSterge_Click

1.5. Compilarea proiectului


Pentru compilare, se selecteaz[ din meniul Build, op\iunea Rebuild Solution (fig. 1.13).

Figura 1.13. Compilarea proiectului.


}n fereastra Output este afi=at rezultatul compil[rii.
Dac[ nu exist[ erori, fereastra Output arat[ astfel:
......
......
1>Lectia1 - 0 error(s), 0 warning(s)
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

L1.6

Lec\ia 1. Structura unui proiect Visual C++2008

1.6. Corectarea erorilor (depanarea programului)


Dac[ programul con\ine erori, fereastra Output arat[ astfel:
......
1>c:\work\vc++2008\work\tutorial\lectia1\Form1.h(121) : error C2065: 'textbox1' : undeclared identifier
1>c:\work\vc++2008\work\tutorial\lectia1\Form1.h(121) : error C2227: left of '->AppendText' must point to
class/struct/union/generic type
1>
type is ''unknown-type''
1>AssemblyInfo.cpp
1>Build log was saved at "file://c:\Work\VC++2008\Work\Tutorial\Lectia1\Lectia1\Release\BuildLog.htm"
1>Lectia1 - 2 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Se d[ dublu click, ]n fereastra Output, pe r`ndul care afi=eaz[ prima eroare (r`ndul care con\ine
error C2065) =i cursorul editorului de text se pozi\ioneaz[ automat pe r`ndul care con\ine eroarea:
textbox1->AppendText("Hello world !\r\n");

}n acest exemplu avem o eroare de sintax[: numele ferestrei text este textBox1 =i nu textbox1.
Se corecteaz[ eroarea =i se re-compileaz[ programul.

1.7. Execu\ia programului


Pentru execu\ia programului, se apas[ butonul

(Start Debugging, fig. 1.14).

Figura 1.14. Execu\ia programului.


La fiecare ap[sare a butonului Test, ]n fereastra text apare mesajul Hello world !, iar la ap[sarea
butonului Sterge, fereastra text este =tears[ (fig 1.15).

Figura 1.15. Rezultatul execu\iei programului.

L1.7