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 ?)

Search the boards