2010-12-14 74 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”。

第二个错误可能是由于两个配置之间包含路径不匹配造成的。

相关问题