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