c ++ - Hvorfor er 'Brug MFC i et statisk bibliotek' -indstilling ikke fulgt, når du opbygger en DLL med VS 2008?

Indlæg af Hanne Mølgaard Plasc

Problem



Mit mål er at oprette en MFC/C ++ DLL, der ikke har andre afhængigheder end de grundlæggende Win32 DLL'er. Så jeg valgte "Use MFC in a Static Library" indstilling i projektegenskaberne -> General -> Use of MFC:


Indtast billedbeskrivelse her [13]


men når jeg bygger denne DLL og tjek resultatet med Dependency Walker får jeg dette:


Indtast billedbeskrivelse her [14]


Viser afhængigheder på følgende MFC Dlls:


MFC90U.DLL
MSVCR90.DLL
MSVCP90.DLL


Så hvad gør jeg forkert her?


PS. Jeg bruger Visual Studio 2008

Bedste reference


Jeg tror jeg fik det. Det, der rodede mig, var projektindstillingen i C++ -> Code Generation -> Runtime Library. Det blev ændret til Multi-threaded DLL (/MD), og derefter blev følgende tilføjet til filen stdafx.h:


#define \_AFXDLL


For at gøre det statisk link til MFC-biblioteker måtte jeg ændre den første indstilling til Multi-threaded (/MT) og kommentere den anden.