Fehler Bitte #define_AFXDLL verwenden oder / MD [d] nicht verwenden, auch nachdem Sie Änderungen in den Projekteigenschaften vorgenommen haben
Arbeite ich auf Win32-Projekt in Visual Studio 2011. Es ist die Erzeugung MFC-Fehlermeldung, wenn ich gehört afx.h oder afxwin.h.
Um dies zu beheben, ich habe die folgenden änderungen in die Projekt Eigenschaften Registerkarte :
1) Verwendung von MFC : Verwenden von MFC in einer freigegebenen DLL
2) C++ -> Code Generation - > Runtime Library - - > Multi-threaded Debug DLL(/MDd)
Dennoch gibt es mir folgende Fehlermeldung, wenn ich die Projektmappe erstellen :
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]
Meine Frage ist, warum die Win32-Projekt generiert MFC-Fehler und wie sollte ich zu entfernen dieses Fehlers.Freundlicherweise mich leiten.
InformationsquelleAutor der Frage SayaliK | 2014-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf Visual Studio 2011, dieser arbeitete für mich:
Project -> "project" Properties -> Configuration Properties -> C/C++ -> Advanced -> Show Includes:
YES(/showIncludes)
Project -> "project" Properties -> Configuration Properties -> General -> Project Defaults -> Use of MFC :
Use MFC in a shared DLL
InformationsquelleAutor der Antwort Ananthalakshmi Sankar
Ich hatte das gleiche problem, aber erst gelöst, als ich merkte, ich hatte die Option "Use MFC in a shared DLL" - flag für die beiden debug und release Konfigurationen (hatte ich nur setzen Sie es für debug).
InformationsquelleAutor der Antwort Chris Kennedy
Meiner Erfahrung nach ist ein zwei-Wege Schritt.
angenommen, Sie möchten die STATISCHE Verbindung:
a) set "Verwenden von MFC in einer Statischen Bibliothek"
b) hinzufügen:
#define _AFXDLL 1
in stdafx.h
funktioniert auf VS 2012
InformationsquelleAutor der Antwort ingconti
Kämpfte ich mit einem ähnlichen problem. In meinem Fall war es verursacht durch die Einstellungen, die befestigt wurden die einzelnen cpp-Dateien. Denn Sie enthalten Präprozessor-Symbole, die Sie tatsächlich blockiert das Projekt (oder Materialen) Ebene der Einstellungen nutzen, die Präprozessor-Symbole.
So überprüfen Sie, ob Datei-level-Einstellungen in Ihrem vcxproj. Wenn Sie dies tun, prüfen Sie, ob Sie gleich sind um das Projekt-level-Einstellungen. Wenn Sie sind, können Sie sicher entfernen Sie diese. Wenn es Unterschiede gibt, Sie zu Sortieren, dass aus.
Cpp-Datei, die level-Einstellungen, sollte normalerweise leer sein (es gibt einige Ausnahmen, wenn Sie Sie brauchen), aber es ist ganz einfach, fügen Sie Sie durch einen Unfall.
InformationsquelleAutor der Antwort Vojtěch Fried
Fügen Sie die
#define _AFXDLL
indirekt durch ein Projekt-Konfiguration EinstellungenInformationsquelleAutor der Antwort vishalj