Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

LongInt(pointer(self)) ?!

[es] :: Pascal / Delphi / Kylix :: LongInt(pointer(self)) ?!

[ Pregleda: 2334 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon LongInt(pointer(self)) ?!12.05.2005. u 17:14 - pre 230 meseci
Mozda je pitanje malo konfuzno:

LongInt(pointer(self)) vraca neki broj. Sta bi ovaj broj trebao da oznacava ? Vrlo mi je bitno, jer se taj broj koristi u CreateIoCompletionPort() funkciji kao jedan od parametara, ali u VCL aplikaciji. Ja treba da prevedem kod za konzolnu aplikaciju, tako da mi treba taj broj koji onaj kod gore vraca.

Hvala
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.226.eunet.yu.



+1 Profil

icon Re: LongInt(pointer(self)) ?!12.05.2005. u 19:27 - pre 230 meseci
Pa pitanje jeste konfuzno jer je deo koda koji si dao nedovoljno da vidimo u kom kontekstu se izvrsava dati kod:

LongInt(pointer(self))

jer ovo self je pokazivac na instancu neke klase (vrlo bitno). On se zatim pretvara u obican pointer, i na kraju se pretvara (tumaci) kao LongInt vrednost.

CreateIoCompletionPort ima sledece parametre:

Code:

HANDLE CreateIoCompletionPort(
  HANDLE FileHandle,
  HANDLE ExistingCompletionPort,
  ULONG_PTR CompletionKey,
  DWORD NumberOfConcurrentThreads
);


gde se upotrebljava to sto ti pominjes, meni se cini jedino na mestu:

ULONG_PTR CompletionKey
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
*.vdial.verat.net.

Sajt: www.diy-fever.com


+1 Profil

icon Re: LongInt(pointer(self)) ?!12.05.2005. u 20:20 - pre 230 meseci
a taj broj koji si dobio predstavlja 32bitnu adresu na kojoj se nalazi instanca objekta na koju pokazuje self
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: LongInt(pointer(self)) ?!13.05.2005. u 00:15 - pre 230 meseci
Da, LongInt(pointer(self)) se koristi kao treci parametar (CompletionKey).

Citat:
bancika: a taj broj koji si dobio predstavlja 32bitnu adresu na kojoj se nalazi instanca objekta na koju pokazuje self

OK, a sta ako je program bez objekata ? U stvari, program ne radi u konzolnom rezimu, ali nema ni objekata, tj nije vidljiv na ekranu. (znaci {$APPTYPE GUI} tipa)
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.253.eunet.yu.



+1 Profil

icon Re: LongInt(pointer(self)) ?!13.05.2005. u 08:43 - pre 230 meseci
Taj CompletionKey je jednostavno veza za rad sa setom funkcija, i neko ko je pisao ovaj tvoj kod je odlucio da taj broj dobije tako sto ce iskoristiti vrednost pokazivaca na neku instancu objekta.

To znaci da mozes da upotrebis neki drugi broj koji ces sam napraviti, recimo preko random() funkcije, i da ga drzis u nekoj promenjivoj dok ne zavrsis sa funkcijama koje ga koriste.
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.253.eunet.yu.



+1 Profil

icon Re: LongInt(pointer(self)) ?!13.05.2005. u 08:46 - pre 230 meseci
Zaboravih, program nije bez objekata jer koristi Self, samo je pitanje koji objekat je u pitanju. Ako das veci deo koda koji okruzuje to Self mozda ti i odgovorimo :)

Meni izgleda kao da iznad tog Self negde imas With ... liniju koda?
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: LongInt(pointer(self)) ?!13.05.2005. u 13:06 - pre 230 meseci
Hvala. Problem nisam resio, verovatno je greska u nekom drugom delu. Ja u stvari treba da motrim na promenu jednog fajla. I imam jedan primer, ali on je VCL orjentisan, znaci ima prozore i objekte, a meni treba bez GUI-a, znaci da radi u poazadini, nesto slicno kao SFP. Zato me i buni ovaj self... Ipak hvala na odgovorima.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: LongInt(pointer(self)) ?!

[ Pregleda: 2334 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.