Posted By: TopGun (ICQ#: 60779546) on 'CZprogram'
Title:     Re: Call to undefined dynalink
Date:      Wed Jan  2 21:02:40 2002

Ta chyba vyskakuje, ked deklarovana funkcia:
function Fio(...) external DLLfile index 1000;
neexistuje v danom DLLfile a zavola sa.
Ak ta funkcia existuje a v pohode sa nalinkuje, jej adresa (vyraz @Fio) ma 
hodnotu radovo 1000. Mam to chapat ako adresu, alebo je to len smernik do 
nejakej tabulky ?
Ak funkciu linkujem klasicky cez LoadLibrary a GetProcAddress a ta funkcia 
neexistuje, vyhodi sa mi  pri jej pouziti Access violation.
Takze to vyzera, ze funkcie deklarovane ako external sa kontroluju pred tym, 
nez sa zavolaju ..?
Rozumie sa tu este niekto do 16-bit pascalu ?

BTW - ta chyba mi vyskoci, ked sa zavola v hlavnom okne inherited SetupWindow.
Vie niekto, co sa vtedy deje ?

d~,d~,d~...



> > Zdar,
> > 
> > mam "obhospodarovat" jednu staru 16-bit aplikaciu, v ktorej niekedy
> vyskoci 
> > hlaska "Call to undefined dynalink".
> Uzij si to :)
> 
> > Zdrojak aplikacie je v Turbo pascale. Niektore DLLka sa linkuju klasicky
> cky
> > cez LoadLibrary a GetProcAddress, niektore sa linkuju "automaticky" 
> > deklaraciou typu 
> > funkction XXXX external 'YYY.DLL' index ZZZ;
> > a niektore 32-bit DLLka sa linkuju cez sluzby kernelu...
> > 
> > V ktorych pripadoch mozem pocitat, ze vyskakuje ta hlaska ?
> > Ako sa vlastne prekladaju volania funkcii deklarovanych pomocou "external
> > DLL 
> > index XXX" ???
> Drive MS nepouzival 'jemna' pro exporotovani, to by na ne bylo od zacatku 
> prilis slozity. Pouzivaly 'indexy'. To jest: jmeno nebylo podstatne, ale ty 
> indexy. Predstav si ze mas deklarovanou 'fci' ala 'foo()' a dneska linkvoani
> 
> probyha tak, ze se pro ni neklaruje (pro MSC) __declspec(dllimport). On z 
> mena udela __imp___foo_ nebo tak neco a hleda to v lib ktery odkazujou tuhle
> 
> fci na prislusny DLL. Drive tomu bylo tak, ze si mel 'definici' DLL ve forme
> fce index<novek radek>etc. Bylo to popojeny na urovni cisel. I MS velice
> brzo 
> prisel na to, ze (jako obvykle musim rici) udelal peknou blbost a u vetsich 
> projektu (tedy i MS windoze 3.x) se to neda rozumne udrzet. Pamatovat si 
> cisla, drzet ty cisla pro zpetnou kompatibilitu a spol takze presli na
> 'name' 
> konvenci. Tohle vsechno zpracovava automaticky dll loader - tezko rict,
> jesli 
> si tohle dela ta 16 bit app sama nebo ne. Pokud ne, tak by nejaka takova 
> hlaska mela vyskocit pri nahravani do pametovyo prostuoru. Pokud sama (treba
> 
> pro linker je to 'lazy' styl) tak pri konkretnim volani. Najdi si 'depend' 
> (utilicka na testovani zavisloti knihoven, mssdk nebo msc a bude asi i u 
> borlandio packalu/c++) - ta ti zobrazi jak jmena tak 'indexy' a zde uvidis, 
> ze nektery 'polozky' jsou v idnexovaci tabulce prazdny, to jest, ze ty fce
> uz 
> dneksa proste neexistujou. Jsou to veci (mimo jin) ala Yeld a spol. Nektery 
> maj 'pro kompatibilitu' "prazdnou" fci (tedy app budou fungovat), nektery, 
> vzhledem ke svymu razu proste neexistujou.
> 
> Takze cislo je nahrazka jmena. Vice viz 'Depend' (mozna ma s na konci :) 
> Dneska uz je to pase a snad veskery projekty jedou na name konvenci.
> 
>  
> 
> Pivson I a posledni, z bozi vule pivar
> 
>     A co budou delat cesi ???
>                                      Deme na pivo !


http://xrs.winradio.com                http://www.rbasic.com
http://xrs.winradio.com/plugins.htm    mailto:stofa@eshs-lab.com

             TopGun  (Are you ready to fly ?)

Search the boards