非 MFC ATL 项目 (dll) 生成与 MFC 相关的错误

Non MFC ATL project (dll) produces MFC related errors

本文关键字:MFC 错误 项目 ATL dll      更新时间:2023-10-16

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

窗户。H 已包括在内。 MFC 应用不得 #include @ afxv_w32.h

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

由于此项目与MFC无关 - 为什么我会收到这些错误?(在项目设置中:"使用 MFC"= 使用标准 Windows 库。

我已经检查了预处理器定义:WIN32_窗户_调试_USRDLL

这里也没有。

有什么想法吗?

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

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

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

如果您希望保持项目干净(从 MFC),则需要通过类视图添加对话框 添加类 如本文中所述:

"添加 ATL"对话框

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