Šta je novo?

handle , __stdcall ??

apostol7

Čuven
Učlanjen(a)
24.12.2001
Poruke
441
Poena
620
Poceo sam malo da radim u WinApi-ju pa me zanimaju neke stvari. Sta je 'handle', kao na primer HWND??? I cemu sluzi __stdcall koji se stavlja pre imena funkcije?? :trust: :trust:


Unapred hvala !
 
HWND je handle na prozor (Window). U stvari... kada program zatrazi od OS-a da mu kreira neki objekat (prozor, file, mutex, event, ...) OS vraca HANDLE. HANDLE moze imati bilo koju vrednost. Neke API funkcije ce vratiti index objekta u internim strukturama a druge API funkcije mogu da vrate pointer na neku internu strukturu. U principu, programer treba da zna da je HANDLE referenca nekog sistemskog objekta.

__stdcall je nacin pozivanja funkcije. Taj prefix govori kompajleru kako da smesti parametre funkcije na stek pre pozivanja iste.
 
Praktično, HWND je typedef void *
I kad god naletiš na takve "nestandardne" tipove (kojih je win32 api prepun), to su ili integeri, ili pokazivači na integere, ili pokazivači na blok memorije (void *) typedefovani u windows.h, tako da nemoj da te plaše :)
Ako nešto počinje na LP, to je pokazivač (long pointer), recimo LPVOID je typedef void *, LPSTR je char *, itd.
 
Poslednja izmena:
offtopic: al zato stisni ti ctrl alt delete i vidi koliko rama zauzima C++ program a koliko C# a da ne pricamo Java. U sustini nije velika razlika, ali ako se pravi npr. neki monitoring program (npr. DU Meter ako vam je poznat, ili slicno), bezveze je da zauzima vishe rama nego explorer.exe (a uvek treba da je ukljucen). CLR je fina stvar, al samo kada ima mnogo posla za njega.

Nije "Java/C#" sve sto sija :D

@rest: tema je dobila odgovor, moze lock :)
 
...ili nek neko napise ultra brzu, SSE optimizovanu matematicku biblioteku funkcija za rad sa velikim matricama i vektorima? C#/Java resenje bi radilo jaaaaaako sporo. U principu, mozes da "engine" programa pises u C/C++, a user interface u C#.
 
Hmm, probao sam - i ja sam mislio da ce biti ogromna razlika. Ali razlika je bila sitna (2-3%, znaci error margin).
Nelogicno, ali tako je ispalo (konrektno sam proboa racunanja po nizovima, ne matricama, tako da... ko zna).
Probaj pa javi?:)
 
Nazad
Vrh Dno