【发布时间】:2023-03-14 22:25:01
【问题描述】:
我创建了一个干净的(非 MFC)atl 项目, 添加了一个对话框和一些位图,编译时出现 3 个 MFC 相关错误:
WINDOWS.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 类。
【问题讨论】:
-
您看到不知何故包含了 MFC。 (添加对话框时?或通过
#include)。非 MFC 项目不会发生这种情况。 -
刚刚添加了一个对话框,ATL 对话框,没有什么我以前没有做过的。我在类似的项目中做过不止一次。我正在比较,这次没有发现任何不同。
-
使用/showIncludes 编译器选项找出为什么包含
<afxv_w32.h>并从那里开始工作。 -
我看到了包含,我不知道是什么原因造成的。看来我必须在每一步之后重新开始并重新编译,以找出触发此错误的原因....
标签: c++ visual-studio-2012 mfc atl