Bonjour,
J'ai un probleme de link. Je dois modifier un projet(dll) existant, pour cela j'utilise des fonctions d'une librairie.
La dll est compile en mode "MFC: Use Standard Windows Libraries". (je n'ai pas le droit de changer)
La lib est compile en mode "MFC: Use Standard Windows Libraries".
Avant modif:
Les deux compile independamment, 0 erreur, 0 warning.
Modif:
J'inclus le fichier .h qui contient mes fonctions dans le projet dll.
Je link avec la lib (Properties/Linker/Input/Add Dep/maLib.lib
Je recompile ma dll, ca compile jusqu'au link ou j'obtiens les erreurs:
J'ai essayer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Compiling manifest to resources... Linking... MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fprintf already defined in libcmtd.lib(fprintf.obj) MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fopen already defined in libcmtd.lib(fopen.obj) MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __errno already defined in libcmtd.lib(dosmap.obj) MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _malloc already defined in libcmtd.lib(dbgheap.obj) MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _sprintf already defined in libcmtd.lib(sprintf.obj) MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fclose already defined in libcmtd.lib(fclose.obj) MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _free already defined in libcmtd.lib(dbgheap.obj) MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _fflush already defined in libcmtd.lib(fflush.obj) MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in libcmtd.lib(typinfo.obj) MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in libcmtd.lib(typinfo.obj)
- de mettre ma dll en "Use MFC in shared DLL" => ca compile bien mais j'ai pas le droit de le faire(contrainte), j'ai fait le test uniquement pour voir(au cas ou ca peut vous aider a m'aider).
- de mettre ma lib en "Use MFC in shared DLL" => ca change rien.
- d'ignorer libcmtd.lib(Properties/Linker/Input/Ignore spec lib/):
Je sais plus quoi faire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Compiling manifest to resources... Linking... Creating library ..\Compilation\Debug\MaDLL.lib and object ..\Compilation\Debug\MaDLL.exp MaDLL.obj : error LNK2001: unresolved external symbol __crtDbgFlag nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
Merci
Partager