Je développe l'application en utilisant VC++ 6.newbie: Libérer CRT lib utilisé par la bibliothèque
J'ai une DLL tierce. Cette bibliothèque compilée en tant que DLL multithread (/ MD) et mon application aussi. Mais je ne lien:
LINK : warning LNK4075: ignoring /EDITANDCONTINUE due to /INCREMENTAL:NO specification
msvcprtd.lib(MSVCP60D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_strin
[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) already defined in XXXApi.lib(CODbg.obj)
msvcprtd.lib(MSVCP60D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<c
har,struct std::char_traits<char>,class std::allocator<char> > const &)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@Z) already defined in XXXApi.lib(Dictionary.obj)
../../Exes/win2k3_oracle11/XXX.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
De here je vois que même si les deux 3e bibliothèque et mon code compilé comme/MD, il est peut-être en conflit avec ancien/nouveau iostream Beining utilisé.
Est-il possible de déterminer quelle bibliothèque iostream old/new est utilisée par une bibliothèque tierce?
UPD: La bibliothèque tierce est statique et non dynamique comme je le pensais auparavant. La bibliothèque est compilée/MD. Dependency Walker fonctionne avec les DLL wirh et non avec les libs.