Posted By: TopGun (Top Gun) on 'CZprogram'
Title: Re: Problem s linkovanim pod windows
Date: Mon Dec 9 19:33:08 2002
1. Nepouzivas nahodou LoadLibrary v DllMain ?
2. Dodrziavas calling convention ?
> Tak uz doslo i na windows. Situace je trochu neprehledna, pokusim se ji
> popsat.
>
> Mam aplikaci A prelozenou BCB5 (Borland C++ Builder 5). Aplikace A pouziva
> dynamickou knihovnu K, ktera je prelozena MSVC6. Knihovna K ma _globalni_
> (neexportovanou) instanci tridy, ktera v konstruktoru pres LoadLibrary
> otvira
> dynamickou knihovnu L prelozenou MSVC6. Knihovna L pouziva knihovnu
> ole32.dll.
> L je slinkovana s ole32.lib, takze L natahuje ole32.dll automaticky pri svem
>
> otevreni.
>
> A ted mam serii zajimavych pozorovani :)
>
> 1. Udelam z K.dll import library K.lib pro BCB, prelozim A, spustim. A
> loadne
> automaticky K, K otevre pres LoadLibrary L, ta automaticky otevre ole32.lib
> a
> pri otvitrani ole32.lib mam access violation. LoadLibrary zfailuje.
>
> 2. Pokud neudelam K.lib, ale otevru v aplikaci A knihovnu K.dll pres
> LoadLibrary, vse projde (L korektne natahne ole32.dll)
>
> Kdybyste mi toto nekdo mohl vysvetlit...
>
> Mam jeste dalsi zajimave veci (komu se to zda moc dlouhe a narocne, dal
> nectete).
>
> 3. pokud ta L pouziva ole32.dll, slitne to jen pod XP, pod w2k to jede
> korektne. Pokud ta L pouziva winsock, slitne to pod obouma OS.
>
> 4. V K mam jeden exportovany globalni pointer na rozhrani (struktura
> obsahujici jen pointery na fce). Udelam vse podle bodu 2, pak pres
> GetProcAddress ziskam adresu te promenne a zavolam nejakou tu fci. Vysledek
> -
> padne to na rypak.
>
> 5. Udelam vse jak v bode 4, akorat misto exportovane promenne mam fci, ktera
>
> vrati ten pointer. V tomto pripade fci zavolam korektne...
>
> Jen doplnim - pokud aplikaci A prelozim v MSVC, jedou vsechny prripady
> korektne.
>
> Jestli nekdo tusite proc to v tom kterem pripade pada, nenechte si
> to pro sebe :)
>
>
>
> medvidek
>
> --
> ELVIRA - Extended LSD VoiceXML interpreter for Applications
> http://www.fi.muni.cz/lsd/elvira
> Engine for building dialog applications Free for noncommercial use
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 ?)