Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.353 pregleda

Najnovija ↓

LongInt(pointer(self)) ?! 12.05.2005. u 18:14 · pre 261 mesec #1
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
Re: LongInt(pointer(self)) ?! 12.05.2005. u 20:27 · pre 261 mesec #2
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
Re: LongInt(pointer(self)) ?! 12.05.2005. u 21:20 · pre 261 mesec #3
a taj broj koji si dobio predstavlja 32bitnu adresu na kojoj se nalazi instanca objekta na koju pokazuje self
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: LongInt(pointer(self)) ?! 13.05.2005. u 01:15 · pre 261 mesec #4
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)
Re: LongInt(pointer(self)) ?! 13.05.2005. u 09:43 · pre 261 mesec #5
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.
Re: LongInt(pointer(self)) ?! 13.05.2005. u 09:46 · pre 261 mesec #6
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?
Re: LongInt(pointer(self)) ?! 13.05.2005. u 14:06 · pre 261 mesec #7
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme