Thoughts of euphory..

Tuesday, December 9, 2008

C++ Programming: 1. First Steps

V prvom tutoriale si rozbehame IDE (integrated development environment), teda prostredie, v ktorom budeme programovat. Existuje ich vela, ale ja navrhujem pouzivat to najpohodlnejsie: Visual Studio. Navyse sa toto prostredie pouziva aj vo vela softwarovych firmach, takze skusenosti s nim sa buducim programatorom urcite budu hodit.

Najprv si treba stiahnut instalacku Visual Studio 2008 Express. Da sa zadarmo stiahnut zo stranky Microsoftu. Treba si stiahnut Visual C++ 2008 Express Edition, tu:
http://www.microsoft.com/express/download/ . Neskor poskytnem aj nejake prakticke pluginy, ale najprv treba rozbehat Visual Studio, a spustit v nom nas prvy program. Tym by mal tento tutorial skoncit, pretoze ho chcem udrzat velmi kratky. Ocakavam od ludi, ze si na tutorialy vzdy najdu polhodinu az hodinu casu. Mozu si byt isti, ze sa naucia mnohe prakticke veci.

Ak je Visual C++ uz nainstalovane a uspesne spustene, skusime vytvorit jebnoduchy program, na ktorom budeme neskor stavat dalsie tutorialy. V menu si vyberieme: File - New - Project. Otvori sa okno s vela moznostami projektov. Netreba sa bat, ked nevieme, co ktory projekt znamena, ani ja vacsinu nepoznam. Vyberieme si typ Visual C++, Win32. Tu uz su na vyber dva projekty: konzolovy a oknovy. Ak by sme si vyberali oknovy projekt, Visual Studio by automaticky pripravilo 6 stran kodu na pracu s oknom, naco by sa vacsina ludi chytila za hlavu s tym, ze to je na nich moc zlozite (aspon ja som sa chytal ked som zacinal). Treba zacat s niecim jebnoduchym a prehladnym: vyberieme si konzolovy projekt. Treba este zadat nejaky nazov projektu, "first", "aa", ... Otvori sa Application Wizard, dame Next, tu mame vybrane Console Application. Zaskrtneme Empty Project a dame Finish. Vytvorili sme prazdny projekt, a este potrebujeme pridat kod. Vlavo v okne Solution Explorer klikneme pravym tlacitkom mysi na Source Files, vyberieme Add, a v nom New Item. Defaultne by malo byt vybrane .cpp, takze len napiseme nejaky nazov pre subor ("first", "aa") a dame enter. Do tohto prazdneho suboru napiseme nasledovne:


int main(char argc, char *argv[])
{
return 0;
}


Stlacenim F7 projekt skompilujeme. Dole, v okne Output by malo okrem ineho napisat: 0 error(s), 0 warning(s). Stlacenim F5 mozme program spustit, a kedze v nom este nic nerobime, tak sa hned aj zatvori. Dopiseme teda par riadkov, aby program aj nieco vypisal. Kedze by sa zase hned zavrel, pouzijeme prikaz cin, ktory cita vstup, aby program cakal na vstup a nezavrel sa.


#include <iostream>
using namespace std;
int main(char argc, char *argv[])
{
cout << "bla\n";

char c;
cin >> c;

return 0;
};


Tento program by mal vypisat "bla", skocit na dalsi riadok, a cakat na vstup. Tym tento tutorial konci, a nabuduce si vysvetlime, co sa to tam vlastne deje. Netreba sa bat, je to primitivne, a kazdy to pochopi, pokial mu je to dobre vysvetlene :)

TODO: pridat obrazky

Sunday, August 17, 2008

Code profiling tools

I've spent a few hours looking for good code profiler for my game engine, optimally if it could be integrated into Visual Studio 2005. So here is my report, hopefully it will save time to somebody.

There are some payed profilers:
- Intel's VTune
- Compuware's DevPartner Performance Analysis
- Visual Studio Team Edition has integrated profiler (my professional edition doesnt).

Then some free:
- IProf, which seems to need to add some lines into every function that should be profiled, which is very nonpractical
- gprof for gcc (not for VS)

Some tools are also listed on wikipedia: List_of_performance_analysis_tools.

And finally the profiler of my choice.
AMD's CodeAnalyst is for free, is integrated into VS2005, and works very well. It works on Intel processors too, only some HW-related features are unavailable. To download CodeAnalyst, registration is required - that's where bugmenot.com helps. By the way, in order to get proper results, project should be compiled as release, with debugging information used (Program Database /Zi).

So, my first post. I hope posts will stay this informational in future.

Labels:


This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]