Posted By: pivson (Pijte pivo, je zdrave !) on 'CZprogram'
Title:     Re: Call to undefined dynalink
Date:      Mon Dec 31 09:19:21 2001

> 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 !

Search the boards