[ pisac @ 27.05.2005. 09:00 ] @
Pokušavam da provalim šta predstavljaju ovi delovi koje sam zacrvenio? Nemam vremena za prelistavanje knjige, jer danas popodne polažem neki ispit gde će mi to možda trebati, a imam još mnogo toga da radim.

//----------------------------------------------------------------
// THREAD PARAMETER STRUCTURE
//----------------------------------------------------------------
typedef struct Type_ThreadParameter
{
int nThreadNo; // thread number
HWND hwndThread;
int speed; // execution speed
int xPosition;
int yPosition;
COLORREF color;
}ThreadParameter;

//----------------------------------------------------------------
// SEMAPHORES
//----------------------------------------------------------------
static HANDLE hSemaphore[2];

//----------------------------------------------------------------
// NUMBER THREAD FUNCTION
//----------------------------------------------------------------
DWORD WINAPI NumberThread(LPVOID lpvParameter)
{
ThreadParameter *tp = (ThreadParameter *)lpvParameter;

HDC hDC;
int iCounter = 0;
char szText[2];

while(1)
{
hDC = GetDC(tp->hwndThread);
SetTextColor(hDC,tp->color); // color
[ anon315 @ 27.05.2005. 09:58 ] @
Da ti kazem posteno, ne znam sta ovo radi i cemu sluzi, ali ovo sto pitas ne bi trebalo da je problem.

Code:
ThreadParameter *tp = (ThreadParameter *)lpvParameter;


tp je pokazivac na ThreadParameter, a sa (ThreadParameter *)lpvParameter vrsis cast IpvParameter u pokazivacki tip tipa ThreadParameter.

Operator -> sluzi da ne moras da se mucis da dereferenciranjem, nego prosto tako dohvatas polja, metode etc.
[ manman @ 27.05.2005. 10:07 ] @
Posto ti je hitno pa u dve recenice.
prvi red crvenog fonta: sada je tp pokazivac na objekat strukture ThreadParameter;
drugi red i treci red: sada se sa tp-> ime_promenjive pristupa odredjenom podatku objekta na koji pokazuje u prvom redu crvenog fonta definisan pokazivac tp.
Tako se u trecem redu pristupilo boji(color) konkretnog objekta. znaci tu je moglo da pise umesto color i ime nekog drugog podatka iz strukture ThreadParameter, ali ocigledno boja nas je interesovala pa pristupamo njoj sa tp->color.
[ X Files @ 27.05.2005. 10:53 ] @
Code:

ThreadParameter *tp = (ThreadParameter *)lpvParameter;


(ThreadParameter *) je tzv cast-ing, i time ti kazes JA ZNAM da je
lpvParameter tipa ThreadParameter, i neka tp pokazuje
na taj objekat, cijim osobinama cu kasnije pristupati sa ->.

A sa tp-> pristupas osobinama objekta tipa ThreadParameter.

Ako bi izbacio taj umetak, moguce da bi ti kompajler prijavio Warning, a mozda
ga i ne bi preveo, i prijavio bi neku gresku. Proveri sam kad budes imao vremena.

Inace takav C casting vodi ka 'unsafe' kodu, i u modernom C++-u se sve redje
koristi. Zbog toga, a i mnogo cega drugog (dinamickog 'prepoznavanje' objekta)
koriste se:

dynamic_cast
static_cast
reinterpret_cast

ili u praksi (kad budes imao vremena) pogledaj:

http://tinyurl.com/cmpch

...ili potrazi na net-u, ima stotine mesta gde mozes pronaci o inforamcije o tome.
[ pisac @ 27.05.2005. 12:29 ] @
Hvala
odoh na ispit, pa cemo da vidimo
[ pisac @ 28.05.2005. 01:09 ] @
Položio.
Inače, nije mi zatrebalo ovo, ali korisno je znati.