Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



static libraries

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: static libraries

Autor: michal7

21:27:03 10.10.2011

JJ, je to tak, jak rikas. Pres DUMPBIN je videt, ze LIBky publikuji stejne symboly. Zvlastni je, ze linker zadnou chybu nebo warning kvuli duplicite nehlasil. No nakonec to poresily DLL pro kazde SDK zvlast. Jinak zdravim - zname se z FSI :)

Citovat příspěvek

 

Re: static libraries

Autor: Farao

9:26:52 10.10.2011

Dvě verze jedné knihovny v jedné binárce použít nelze pokud se mezi verzemi nezměnily signatury všech funkcí v knihovně (jména a/nebo počty parametrů).

Jak by mohl chudák linker vědět jestli funkce_z_knihovny odkazuje na verzi 1 nebo 2? Linker použije tu verzi na kterou narazí první a když narazí na druhou verzi tak obvykle zahlásí varování a druhou verzi ignoruje jako duplicitní.

Citovat příspěvek

 

static libraries

Autor: michal7

13:31:28 08.10.2011

Ahoj,

mam takovy problem se static libraries. Potrebuju pouzit dve ruzne verze stejneho SDK v jedne DLL aniz by doslo ke kolizi nazvu. Myslel jsem ,ze to pujde udelat tak, ze si udelam dve static libraries pro kazdou verzi SDK zvlast a ty pak naimportuju do DLL. Jenze chova se to zvlastne a nejsem si jisty proc....

Zjednodusene to vypada asi taklhe:

LIB1 - obsahuje fci Secti1, ktera pouziva veci z SDK 1.0 (*.h a lib se berou z adresaru kde je SDK 1.0)

LIB2 - obsahuje fci Secti2, ktera pouziva veci z SDK 2.0 (*.h a lib se berou z adresaru kde je SDK 2.0)

DLL - importuje LIB1 a LIB2, obsahuje fci Secti(float version) ktera podle parametru version vola bud Secti1 nebo Secti2.

Kompilace projde bez problemu, jenze to funguje jen s jednou verzi SDK misto se dvema :((.

Pri ladeni vidim, ze se vola Secti(2.0) do DLL. Ta na zaklade version parametru zavola Secti2 - coz je jeste spravne. Jenze vsechny veci ktere se v Secti2 pouzivaji jsou z SDK 1.0 misto SDK 2.0. Pritom LIB2 byla vytvorena s SDK 2.0....

Jedine co me napada, ze linker napoji vsechno az pri vytvareni vysledne DLL misto aby to udelal uz pri vytvareni LIBu. Takze symboly z SDK1.0 prekryjou ty z SDK2.0 a Secti2 diky tomu vola veci z SDK1.0...


Nevite nekdo cim to muze byt a jak to pripadne vyresit ?

Diky moc.

Jinak kompiluju to ve Visual C++ 2010...

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: