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

Callback funkcija

[es] :: Asembler :: Callback funkcija

Strane: 1 2

[ Pregleda: 6200 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BaCkSpAcE

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



Profil

icon Callback funkcija05.03.2001. u 11:17 - pre 261 meseci
Kakva je to CallBack funkcija u Windowsu?
 
Odgovor na temu

BaCkSpAcE

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



Profil

icon Re: Callback funkcija05.03.2001. u 23:23 - pre 261 meseci
Josh da dodam... to je neka stvar na koju sam naishao chitajuci neki text za masm32 za win normalno...
 
Odgovor na temu

Vojislav Milunovic

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



+1 Profil

icon Re: Callback funkcija06.03.2001. u 08:38 - pre 261 meseci
Meni osim rekurzije nista drugo ne pada napamet...Ako je to WinAPI (a sumnjam) onda pogledaj MSDN za tu f-ju.
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.yubc.net

ICQ: 44582291


+58 Profil

icon Re: Re: Callback funkcija06.03.2001. u 11:05 - pre 261 meseci
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.
 
Odgovor na temu

Vojislav Milunovic

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



+1 Profil

icon Re: Callback funkcija06.03.2001. u 15:30 - pre 261 meseci
Kad funkcija poziva samu sebe.
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.yubc.net

ICQ: 44582291


+58 Profil

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

Vojislav Milunovic

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



+1 Profil

icon Re: Callback funkcija08.03.2001. u 07:41 - pre 260 meseci
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("..");
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.yubc.net

ICQ: 44582291


+58 Profil

icon Re: Callback funkcija09.03.2001. u 10:15 - pre 260 meseci
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.
 
Odgovor na temu

Vojislav Milunovic

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



+1 Profil

icon Re: Callback funkcija09.03.2001. u 12:56 - pre 260 meseci
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
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.yubc.net

ICQ: 44582291


+58 Profil

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

scorpio

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



Profil

icon Re: Re: Callback funkcija18.05.2001. u 09:54 - pre 258 meseci
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
 
Odgovor na temu

Vojislav Milunovic

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



+1 Profil

icon Re: Callback funkcija18.05.2001. u 10:17 - pre 258 meseci
Jel ovo samo za windows prevashodno,posto stvarno nikad nisam video nesto ovako pod UNIXom...
 
Odgovor na temu

scorpio

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



Profil

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

 
Odgovor na temu

Vojislav Milunovic

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



+1 Profil

icon Re: Callback funkcija18.05.2001. u 15:25 - pre 258 meseci
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?
 
Odgovor na temu

scorpio

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



Profil

icon Re: Re: Callback funkcija20.05.2001. u 09:04 - pre 258 meseci
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.
 
Odgovor na temu

scorpio

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



Profil

icon Re: Re: Re: Callback funkcija20.05.2001. u 09:10 - pre 258 meseci
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.
 
Odgovor na temu

Vojislav Milunovic

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



+1 Profil

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

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

int main(){
callme(main);
}
 
Odgovor na temu

scorpio

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



Profil

icon Re: Re: Callback funkcija20.05.2001. u 20:17 - pre 258 meseci
Tacno!

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

Ali koncept je pravi.
 
Odgovor na temu

Vojislav Milunovic

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



+1 Profil

icon Re: Callback funkcija20.05.2001. u 21:52 - pre 258 meseci
Pa da vrti se stalno ;o) Ja sam dao samo kao primer
 
Odgovor na temu

scorpio

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



Profil

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

 
Odgovor na temu

[es] :: Asembler :: Callback funkcija

Strane: 1 2

[ Pregleda: 6200 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

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