MFC 错误 error C2504: “CDialogEx”: 未定义基类,以及错误error C1189
MFC 错误 error C2504、error C1189
- error C2504: “CDialogEx”: 未定义基类-报错解决
- 报错原因
- 问题解决方法:
- ## 错误 error C1189
error C2504: “CDialogEx”: 未定义基类-报错解决
在MFC文件中添加资源窗口,后添加新类,随后在.h头文件中出现 CDialogEx C++ class 未定义基类错误。
解决:一般添加#include <afxdialogex.h>
头文件就可以解决,还不行的话请看下面其他的解决方法。
报错原因
首先,上图这个framework.h非常关键,它在pch.h中也有定义,所以下图这个framework.h可以删掉,但是pch.h中的framework.h不能删除,否则必报类似CDialogEx C++ class 未定义基类的错误。
如果你把framework.h中如下语句删除,报错:
#include <afxcontrolbars.h> // MFC 支持功能区和控制条
在afxcontrolbars.h头文件中有afxdialogex.h头文件,该头文件中定义了基类CDialogEx:
问题解决方法:
添加
#include <afxdialogex.h>
#include <windows.h>
均不行添加
#include <afx.h>
#include <windows.h>
均不行添加了
#include <afxwin.h>
也不行添加以下代码:
#include <afxcontrolbars.h>
成功!
————————————————
版权声明:本文为CSDN博主「Pvr1sC」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_51911432/article/details/122816079
## 错误 error C1189
如果新建一个Win32控制台应用程序,应用程序设置里附加选项勾选了"预编译头",但是程序里使用了CString等MFC框架中的类型的话,编译报错,在stdafx.h中添加MFC框架程序需要的头文件:
#pragma once#include <stdio.h>
#include <tchar.h>
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif#include <afx.h>
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT#include <iostream>
#include <atlbase.h>
#include <atlstr.h>
编译后如果报如下错误的话:
Building MFC application with /MD[d] (CRT dll version) requires MFC share dll version.Please #define _AFXDLL or do not use /MD[d]
解决方法:在stdafx.h头文件中添加#define _AFXDLL
即可。
MFC 错误 error C2504: “CDialogEx”: 未定义基类,以及错误error C1189相关推荐
- error C2504: “CDialogEx”: 未定义基类-报错解决
当MFC写下如下代码 Dlg d; //Dlg为可视化界面的类 Dlg.DoModal(); 就会出现 Dlg class类没有DoModal error C2504: "CDialogEx ...
- error C2504: “XXXXXXX”: 未定义基类
今天犯到了一个低级错误,记下来加深印象. 造成这一现象主要的原因是头文件相互包含,文件构成一个环形结构,从而编译时循环包含出错 如: AA.h中包含BB.h BB.h中包含CC.h CC.h中包含AA ...
- c++ error:C2504 提示未定义基类
[背景] 说明:如何打开1处, 注释掉3,则会提示4的错误.如果注释掉1,打开3,则正确.总之,在定义函数中将基类的头文件放在 子类前,很简单,但一不小心很容易出错误.
- error:C2504 :“xxxxxxx“未定义基类
自己遇到该问题的经过: 1.QT项目中已有一个类CModuleFile,类B继承类CModuleFile.(此时可以正常编译). 2.重命名类CModuleFile为类CModuleFileDeal. ...
- VS2022写Qt代码遇到的问题之 C2504 “xxx”: 未定义基类 (编译源文件
今天写代码的时候遇到一个这个问题,一直报错,说未定义基类,实际上是定义了的,但是就是报错.我分析问题的思路记录一下.这个问题 这个是微软给的提示.我明明定义了但是就是没找到. 后来我分析应该是编译器在 ...
- c2054未定义基类_c++ - 错误C2504:基类未定义 - 堆栈内存溢出
我之前多次遇到过这个错误并最终找到了解决方案,但是这个让我难过. 我有一个由'Player'继承的类'Mob'. 这是Mob.h: #pragma once #include "PlaySt ...
- 黑马程序员mfc中分割窗口---ctreeview未定义基类的解决方法
在跟班黑马程序学mfc中分割窗口,vs2019出现了以下的错误.解决方法很简单. 首先我们点击错误,自动定位到出错的类,会发现出错的是CSelcetView的头文件和源文件出错, 我们找到头文件中 在 ...
- VS error c2504未定义基类
问题描述 error c2504未定义基类,编译错误,和#include头文件有关. 感谢 http://blog.csdn.net/qncj666/article/details/8562338 详 ...
- C++ 头文件的相互包含问题C2504未定义基类 | C2143,C4430,C2238
文件相互包含的错误问题 序言 可能会有的疑问 原因分析 C2504: 未定义的基类 C2143: 语法错误: 缺少";"(在"*"的前面) C4430: 缺少类 ...
最新文章
- Android上传队列使用
- Javascript深入浅出
- samtools merge_【生信工具】Samtools 安装与使用 | “十年以后,工具难免沦为朋友”...
- 对象的比较与排序(三):实现IComparableT和IComparerT泛型接口
- 签入VSS中遇到UTF-8问题
- 2019ICPC(南昌) - The Nth Item(矩阵快速幂)
- 为什么要用webUI?
- .NET Core 和 .NET Framework 启动可执行文件的差别
- php 遍历所有网站网址,使用selenium获取网址所加载所有资源url列表信息
- python面向对象三大特性6大原则_【Python学习笔记】面向对象三大特性
- re模块中的非贪婪匹配
- python numpy和pandas做数据分析时去掉科学记数法显示
- 翻译: Octave 入门教程
- LoadRunner 压力测试
- 至强服务器性能排行,至强cpu天梯图,至强服务器cpu排行-
- 实现mac状态栏图标的隐藏
- mysql占用CPU过高解决
- 官媒痛批“精神鸦片”,曾拿百万年终奖的腾讯游戏员工要失业了吗?
- TCP/IP详解 第二章 Internet地址结构
- C++类、结构体、函数、变量等命名规则详解