非MFC ATL项目(DLL)产生与MFC相关的错误

时间:2013-09-24 14:37:41

标签: c++ visual-studio-2012 mfc atl

我创建了一个干净的(非MFC)atl项目, 添加了一个对话框和一些位图,在编译时我得到3个MFC相关错误:

  

WINDOWS.H已包含在内。 MFC应用程序不得#include   @ afxv_w32.h

     

使用/ MD构建MFC应用程序[d](CRT dll版本)   需要MFC共享dll版本。请#define _AFXDLL或不要使用   / MD [d] @ afx.h

由于这个项目与MFC无关 - 为什么我会收到这些错误? (在项目设置下:“使用MFC”=使用Standart Windows库。

我检查了预处理器定义: WIN32 _视窗 _DEBUG _USRDLL

此处也没有。

有什么想法吗?

更新:我发现了我做错了什么。我没有在类向导中添加对话框,而是在资源视图中创建了它,而不是添加了一个类。这将创建一个MFC类,而不是ATL类。

1 个答案:

答案 0 :(得分:0)

我找出了什么问题,在这里更新,为未来的用户,因为ATL的文档非常差。

我在资源视图中添加了一个对话框,并为其添加了一个类。那是错误的。添加的类是MFC类,虽然项目不应该支持MFC。

如果您希望保持项目清洁(从MFC),您需要通过Class View Add Class添加对话框,如本文所述:

Add ATL Dialog Box

如果不是ATL,我会把它作为一个错误发布给MS,但我不认为他们仍然关心这项技术。