2010-12-14 7 views
0

Ich habe ein kleines Problem beim Erstellen meiner Anwendung als Release in Visual Studio 2008. Es baut gut ohne Fehler oder Warnungen als Debug. Die Anwendung ist in erster Linie Win32 mit ein wenig MFC und ATL gemischt hier und da. Die meisten Projekte in der Lösung generieren eine LIB und DLL.Probleme beim Erstellen von Anwendung als Release in Visual Studio 2008 - C++

Dies ist einer der Fehler Ich erhalte:

fatal error C1189: #error: Gebäude MFC-Anwendung mit/MD [d] (CRT-DLL-Version) benötigt MFC Shared DLL-Version. Bitte #define _AFXDLL oder benutzen Sie nicht/MD [d]

Meine Anwendung ist ein Multithreaded DLL, so die /MD Bedürfnisse zu bleiben. Die einzige Windows enthält, sind diese:

#include "stdafx.h" 
#include "afx.h" 
#include "WMIQuery.h" 
#include "SerialPort.h" 

Der andere Fehler ist dies:

fatal error C1083: kann nicht geöffnet werden Include-Datei: 'WMIQuery.h': Keine solche Datei oder das Verzeichnis

Dieser macht wirklich keinen Sinn für mich, weil die Umgebung kein Problem hat, diese Datei für Debug zu finden.

Kann jemand das beheben? Wenn zusätzliche Informationen benötigt werden, sag es einfach, und ich poste. Vielen Dank.

+0

Release und debuggen verwenden verschiedene Umgebungen, so dass man einen Header im Debug finden kann, bedeutet nichts, um es im Release-Modus zu finden. – stonemetal

Antwort

1

Die Projekteigenschaftsänderungen, die Sie vorgenommen haben, um es in der Debug-Konfiguration zu erstellen, werden nicht automatisch auch auf die Release-Konfiguration angewendet. Beachten Sie die Combo "Konfiguration" in der oberen linken Ecke des Dialogs. Geänderte Eigenschaftswerte sind fett gedruckt.

Wenn Sie sich nicht erinnern können, welche Änderungen Sie vorgenommen haben, öffnen Sie die .vcproj-Datei in einem Texteditor wie Notepad.exe. Die Einstellungen, die von ihrem Standardwert geändert wurden, sind im Abschnitt Debug | Win32 configuration aufgelistet.

0

Überprüfen Sie Ihre Umgebungsvariablen doppelt. Ich glaube, dass es separate Werte zum Debuggen und Freigeben verwendet.

1

Der erste Fehler ist wahrscheinlich eine Diskrepanz in Ihren Projekteinstellungen. Da Sie/MD benötigen, überprüfen Sie Ihre Projektkonfigurationseigenschaften für die Veröffentlichung unter der Überschrift "Allgemein". Es sollte ein Punkt "Verwendung von MFC" sein. Dies sollte auf "MFC in einer freigegebenen DLL verwenden" festgelegt werden.

Der zweite Fehler ist wahrscheinlich auf eine fehlende Übereinstimmung zwischen den beiden Konfigurationen zurückzuführen.