2010-12-14 54 views
0

我在Visual Studio 2008中將應用程序構建爲發佈時遇到了一些問題。它在沒有任何錯誤或警告的情況下生成爲Debug。該應用程序主要是Win32,在這裏和那裏混合了一點MFC和ATL。解決方案中的大多數項目都會生成LIB和DLL。在Visual Studio 2008中構建應用程序作爲發佈的問題 - C++

這是我收到錯誤之一:

致命錯誤C1189:#ERROR:建築用MFC/MD [d](CRT DLL版本)需要MFC共享DLL版本的應用程序。請#定義_AFXDLL或不使用/ MD [d]

我的應用程序一個多線程的DLL,所以/MD需要留下來。唯一的Windows包含有這些:

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

其他錯誤是這樣的:

致命錯誤C1083:無法打開包含文件: 'WMIQuery.h':沒有這樣的文件或目錄

這個對我來說真的沒有意義,因爲,爲調試找到這個文件構建環境沒有問題。

有誰知道如何解決這個問題?如果需要任何其他信息,請說出來,然後發佈。謝謝。

+0

發佈和調試使用不同的環境,所以能夠在調試中找到頭文件意味着在發佈模式下找到它。 – stonemetal 2010-12-14 15:32:59

回答

1

您爲使它在Debug配置中生成而進行的項目屬性更改也不會自動應用到發佈配置。注意對話框左上角的「配置」組合。更改的屬性值以粗體顯示。

如果您不記得您所做的更改,請在文本編輯器(如Notepad.exe)中打開.vcproj文件。 Debug | Win32配置部分列出了從其默認值更改的設置。

0

仔細檢查你的環境變量。我相信它使用單獨的值進行調試和釋放。

1

第一個錯誤很可能是您的項目設置不匹配。由於您需要/ MD,請在「常規」標題下檢查您的項目配置屬性是否已發佈。應該有一個項目「使用MFC」。這應該設置爲「在共享DLL中使用MFC」。

第二個錯誤可能是由於兩個配置之間包含路徑不匹配造成的。

相關問題