error Please #define _AFXDLL or do not use /MD[d] occurs even after making changes in Project Properties
I am working on Win32 project in Visual Studio 2011. It is generating MFC error when I includes afx.h or afxwin.h. To resolve this, I have made the following changes in the Project Properties tab : 1) Use of MFC : Use MFC in a shared DLL 2) C++ -> Code Generation -> Runtime Library -> Multi-threaded Debug DLL(/MDd)
Still it gives me following error when I build the solution :
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
My question is why Win32 project is generating MFC error and how should I remove this error.Kindly guide me.
On Visual Studio 2011, this worked for me:
Project -> "project" Properties -> Configuration Properties -> General -> Project Defaults -> Use of MFC :
Use MFC in a shared DLL
(In Visual Studio 2019, the latter setting can be found in "Properties -> Configuration Properties -> Advanced -> Use of MFC
"
I had the same problem, but only solved it when I realized I had to set the "Use MFC in a shared DLL" flag for both debug and release configurations (I had only set it for debug).