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

Callback funkcija

[es] :: Asembler :: Callback funkcija

Strane: 1 2

[ Pregleda: 2011 | Odgovora: 22 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BaCkSpAcE
vozim kamion (al' djubretarski)

Član broj: 10
Poruke: 519
*.verat.net

ICQ: 319660682


Profil

icon Callback funkcija05.03.2001. u 11:17

Kakva je to CallBack funkcija u Windowsu?
05.03.2001. u 11:17 

BaCkSpAcE
vozim kamion (al' djubretarski)

Član broj: 10
Poruke: 519
*.verat.net

ICQ: 319660682


Profil

icon Re: Callback funkcija05.03.2001. u 23:23
Josh da dodam... to je neka stvar na koju sam naishao chitajuci neki text za masm32 za win normalno...
05.03.2001. u 23:23 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija06.03.2001. u 08:38
Meni osim rekurzije nista drugo ne pada napamet...Ako je to WinAPI (a sumnjam) onda pogledaj MSDN za tu f-ju.
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
06.03.2001. u 08:38 

Mikky

Moderator
Član broj: 18
Poruke: 1470
*.yubc.net

ICQ: 44582291
Sajt: www.asmdev.net


Profil

icon Re: Re: Callback funkcija06.03.2001. u 11:05
Citat:
predator wrote:
Meni osim rekurzije nista drugo ne pada napamet...Ako je to WinAPI (a sumnjam) onda pogledaj MSDN za tu f-ju.

sta je rekurzija?
-I know UNIX, PASCAL, C, FORTRAN, COBOL, and nineteen other high-tech words.
06.03.2001. u 11:05 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija06.03.2001. u 15:30
Kad funkcija poziva samu sebe.
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
06.03.2001. u 15:30 

Mikky

Moderator
Član broj: 18
Poruke: 1470
*.yubc.net

ICQ: 44582291
Sajt: www.asmdev.net


Profil

icon Re: Callback funkcija07.03.2001. u 23:44
jel moze neki banalni primer te rekurzije
-I know UNIX, PASCAL, C, FORTRAN, COBOL, and nineteen other high-tech words.
07.03.2001. u 23:44 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija08.03.2001. u 07:41
Moze :o)
recimo listanje direktorijuma sam ja radio rekurzijom...cek sacu da ti izvucem primer sa svim komentarima :

Code:
[b]
/* This function is mother of all :o)   *
 * if file is directory is is called    *
 * This one use recursion function call */
int yes_dir(const char *path){        //funny name yes_dir :o))))
 struct DIR *tmp;
 struct dirent *tmp_dir;
 /* Opening our dir path */
 tmp=(struct DIR *)opendir(path);
 /* No chdir() to that dir */
 chdir(path);
 /* Show may begin */
 while ((tmp_dir=readdir((DIR *)tmp))!=NULL){
  /* Now chceck if file is dir */
  if (!is_dir(tmp_dir->d_name)){
    /* If it isn't call cleanlog() */
    cleanlog(tmp_dir->d_name);
  }else{
    /* if dir is '.' or '..' ignore it *
     * I got SIGSEGV with this :o)     */
    if (strcmp(tmp_dir->d_name,".")!=0 && strcmp(tmp_dir->d_name,"..")!=0){
    /* Call again this function */
    yes_dir(tmp_dir->d_name);
    }
  }
}
 /* When we clean our subdir we must go one dir up */
 chdir("..");
return 0;
}
[/b]


Naime ovu funkciju sam koristio za ciscenje logova stim sto je cleanlog() fja koji dati fajl symlinkuje na /dev/null dok je is_dir() obicna funkcija koja poziva stat() i onda na stat.st_mode & S_IFDIR ako je dir vraca 1 ako nije onda 0...
Naime sta radi ova fja...
Svaki put kad je pozoves ona trazi dirove kad najde jedan ulazi u njega i trazi dalje tako sto poziva samu sebe...posle toga kad zavrsi sa petljanjem po diru izlazi iz njega i nastavlja tamo gde je stala...u prethodnom diru...(tako sto na kraju same sebe poziva chdir("..");
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
08.03.2001. u 07:41 

Mikky

Moderator
Član broj: 18
Poruke: 1470
*.yubc.net

ICQ: 44582291
Sajt: www.asmdev.net


Profil

icon Re: Callback funkcija09.03.2001. u 10:15
ok mada sam ocekivao nesto u asembleru posto sam jos slab sa c-om ali nema veze
-I know UNIX, PASCAL, C, FORTRAN, COBOL, and nineteen other high-tech words.
09.03.2001. u 10:15 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija09.03.2001. u 12:56
E jebiga sad...pa najobicniji call koristis iz funckije da pozoves samu funkciju...

recimo

funcija je predator i sad je iz text segmenta pozoves sa
call predator

i u toku funkcije recimo dobijes potrebu da ponovo pozoves istu f-ju pa kucas
call predator

to je cela mudrost...znaci funkcija poziva samu sebe
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
09.03.2001. u 12:56 

Mikky

Moderator
Član broj: 18
Poruke: 1470
*.yubc.net

ICQ: 44582291
Sajt: www.asmdev.net


Profil

icon Re: Callback funkcija09.03.2001. u 21:23
ok ok primljeno k' znanju
-I know UNIX, PASCAL, C, FORTRAN, COBOL, and nineteen other high-tech words.
09.03.2001. u 21:23 

scorpio

Član broj: 370
Poruke: 6
*.dsl.siol.net



Profil

icon Re: Re: Callback funkcija18.05.2001. u 09:54
Zdravo svima!

Koliko je meni poznato CallBack funkcijom (fn) naziva se tista fn, koje adresu damo kao parametar nekoj drugoj fn.

Primer (u C++, jer ja ne radim u ASM):

BOOL CALLBACK MojaCallBackFn(HWND hwnd, LPARAM lParam)
{
//ta funkcija zvat če se za svaki window
//lParam ima vrednost 123456

return TRUE;
//ako bi vratili false prekinuli bi EnumWindows
}

int main()
{
EnumWindows(&MojaCallBackFn, 123456);
}

Na istom konceptu osnovani su Eventi nekih komponenti.

Scorpio
18.05.2001. u 09:54 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija18.05.2001. u 10:17
Jel ovo samo za windows prevashodno,posto stvarno nikad nisam video nesto ovako pod UNIXom...

Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
18.05.2001. u 10:17 

scorpio

Član broj: 370
Poruke: 6
*.dsl.siol.net



Profil

icon Re: Re: Callback funkcija18.05.2001. u 13:11
Pretpostavljam da slične stvari postoje i pod UNIXom, jer je to veoma fleksibilan sistem.

18.05.2001. u 13:11 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija18.05.2001. u 15:25
Ne vredi uopste ne razumem primenu ove funkcije? Ako predam adresu neke funkcije drugoj ocekujem da cu da pozovem tu funkciju u okviru funkcije kojoj sam predao adresu.
Jel imas neki bukvalni primer?

Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
18.05.2001. u 15:25 

scorpio

Član broj: 370
Poruke: 6
*.dsl.siol.net



Profil

icon Re: Re: Callback funkcija20.05.2001. u 09:04
Recimo da imas neki dll (recimo PostScript interpreter).
Zoves funkciju iz dll ProcessFile, koja treba da iz ps fajla napravi bitmap.

Dobro. U ps fajlu moze bit vise strana.
Zato je taj dll napravljen tako, da uzme callback fn kao parametar.

Svaki put kad interpretar zavrsi sa svakom stranom,
zove fn, koje adresu si ti stavio na pocetku.

E sad tvoj program ima priliku da napravi sa stranom sta zeli
(stavi je na ekran, zapise u fajl, ....)

Tako je napravljen GhostScript, barem na Win platformama.
Mislim da GhostScript postoji i za Linux, UNIX, ...
i mislim da se sluzi istim principom.
20.05.2001. u 09:04 

scorpio

Član broj: 370
Poruke: 6
*.dsl.siol.net



Profil

icon Re: Re: Re: Callback funkcija20.05.2001. u 09:10
I jos nesto,

CallBack fn uglavnom se upotrebljavaju kad imas program sa vise modula
(exe i dll)

Tvoj program (exe) zove fn iz dll, i fn iz dll-a ce pre zavrsavanja jednom ili vise puta zvati neku funkciju iz exe (koje adresu si ti slao).

Zato i ime CallBack, jer ti pozivas neku fn iz dll a ta fn zove neku tvoju fn nazad.
20.05.2001. u 09:10 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija20.05.2001. u 12:06
U sustini najobicnije predavanje funkcije kao parametra koja se posle poziva negde u programu ->

int callme(int (*fn)()){
fn();
}

int main(){
callme(main);
}
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
20.05.2001. u 12:06 

scorpio

Član broj: 370
Poruke: 6
*.dsl.siol.net



Profil

icon Re: Re: Callback funkcija20.05.2001. u 20:17
Tacno!

Osim sto bi example koji si napisao uhvatio u krug
(main>callme>main>callme>main>.....)

Ali koncept je pravi.
20.05.2001. u 20:17 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

Član broj: 25
Poruke: 2117
*.verat.net

Sajt: nonenone.net


Profil

icon Re: Callback funkcija20.05.2001. u 21:52
Pa da vrti se stalno ;o) Ja sam dao samo kao primer
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
20.05.2001. u 21:52 

scorpio

Član broj: 370
Poruke: 6
*.dsl.siol.net



Profil

icon Re: Callback funkcija20.05.2001. u 22:23
Znam znam,
samo sam napisao za svaki slucaj.
Ako i drugi prate nas dialog.

20.05.2001. u 22:23 

[es] :: Asembler :: Callback funkcija

Strane: 1 2

[ Pregleda: 2011 | Odgovora: 22 ]

Postavi temu Odgovori

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