1

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

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

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

由于该项目与 MFC 无关 - 为什么会出现这些错误?(在项目设置中:“使用 MFC”= 使用标准 Windows 库。

我检查了预处理器定义:WIN32 _WINDOWS _DEBUG _USRDLL

这里也没有。

有任何想法吗 ?

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

4

1 回答 1

0

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

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

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

添加 ATL 对话框

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

于 2013-09-26T06:00:26.513 回答