Jag har portat ett program från VC7 till VC7.1 med länkfel som följd. Programmet använder en funktion (GetValueSetDefault) som ligger i ett bibliotek som flera program använder. De andra (som också är portade till VC7.1) fungerar att kompilera utan problem. LINK : warning LNK4098: defaultlib 'mfc71d.lib' conflicts with use of other libs; use /NODEFAULTLIB:library Det var olika inställningar för MFC i programmet och i dll:enLänkfel vid användning av bibliotek
Länkfelen och varningarna jag får är:
LINK : warning LNK4098: defaultlib 'mfc71d.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib 'mfcs71d.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
SimLibD.lib(StdAfx.obj) : warning LNK4217: locally defined symbol __CrtDbgReport imported in function "unsigned long __stdcall ATL::GetEnvironmentVariableWFake(unsigned short const *,unsigned short *,unsigned long)" (?GetEnvironmentVariableWFake@ATL@@YGKPBGPAGK@Z)
SimLibD.lib(StdAfx.obj) : warning LNK4217: locally defined symbol __resetstkoflw imported in function "bool __cdecl ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable(unsigned long)" (?_AtlVerifyStackAvailable@_ATL_SAFE_ALLOCA_IMPL@ATL@@YA_NK@Z)
SimLibD.lib(StdAfx.obj) : warning LNK4217: locally defined symbol _wcscpy imported in function "unsigned short * __stdcall ATL::CharLowerWFake(unsigned short *)" (?CharLowerWFake@ATL@@YGPAGPAG@Z)
SimLibD.lib(StdAfx.obj) : warning LNK4217: locally defined symbol _malloc imported in function "public: static void * __cdecl ATL::CCRTAllocator::Allocate(unsigned int)" (?Allocate@CCRTAllocator@ATL@@SAPAXI@Z)
SimLibD.lib(StdAfx.obj) : warning LNK4217: locally defined symbol _free imported in function "public: static void __cdecl ATL::CCRTAllocator::Free(void *)" (?Free@CCRTAllocator@ATL@@SAXPAX@Z)
SimLibD.lib(TCPSocket.obj) : warning LNK4217: locally defined symbol _strncpy imported in function __catch$?ConnectToServer@CTCPSocket@@QAEIPBD_N@Z$0
mfcs71d.lib(appmodul.obj) : warning LNK4217: locally defined symbol __setmbcp imported in function "int __stdcall AfxInitialize(int,unsigned long)" (?AfxInitialize@@YGHHK@Z)
MyListBox.obj : error LNK2019: unresolved external symbol "void __cdecl GetValueSetDefault(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > &,char const *,char const *,char const *)" (?GetValueSetDefault@@YAXAAV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@PBD11@Z) referenced in function "public: void __thiscall CMyListBox::SetupData(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > >)" (?SetupData@CMyListBox@@QAEXV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z)
.\Debug/TraceLog.exe : fatal error LNK1120: 1 unresolved externals
Jag inkludera lib-filen i projektinställningarna på samma sätt som jag gör i de andra programmen.Sv: Länkfel vid användning av bibliotek
LINK : warning LNK4098: defaultlib 'mfcs71d.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
Du har ställt in några inställningar fel.
Kontrollera följande projectinställningar:
General -> "Use of MFC"
C/C++ -> Code Generation -> "Runtime Library"
Jämför med projekten som fungerar.Sv:Länkfel vid användning av bibliotek