MFC如何在自己的类中定义视图类变量?然后在视图类中定义该类对象?头文件包含应该是怎么个顺序?
我写一个类,里面定义了视图类的指针,所以该类头文件包含文档类头文件和视图类头文件。然后我又要在视图类中使用该类,所以在视图类头文件中要包含该类头文件。这样就形成了头文件嵌...
我写一个类,里面定义了视图类的指针,所以该类头文件包含文档类头文件和视图类头文件。然后我又要在视图类中使用该类,所以在视图类头文件中要包含该类头文件。这样就形成了头文件嵌套,编译出错。
以下是错误代码:
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C2146: 语法错误 : 缺少“;”(在标识符“CellsRect”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>DynamicBitmap.cpp
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(16) : error C2061: 语法错误 : 标识符“CDynamicBitmapView”
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>DynamicBitmapView.cpp
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(16) : error C2061: 语法错误 : 标识符“CDynamicBitmapView”
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
我的视图类里面也添加了文档头文件 展开
以下是错误代码:
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C2146: 语法错误 : 缺少“;”(在标识符“CellsRect”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\dynamicbitmapview.h(75) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>DynamicBitmap.cpp
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(16) : error C2061: 语法错误 : 标识符“CDynamicBitmapView”
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>DynamicBitmapView.cpp
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(16) : error C2061: 语法错误 : 标识符“CDynamicBitmapView”
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\visual stdio 2008 project\dynamicbitmap\cellsrect.h(22) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
我的视图类里面也添加了文档头文件 展开
展开全部
这种方法是有问题的!我推荐一个方法,你可以在你的类里面定义一个CView的指针对象(因为CView类是你的视图类的基类,是定义在afxwin.h的头文件里面,所有的MFC工程都包含这个头文件),所以你不用再你的头文件里面包含视图类和文档类的头文件,然后你在cpp中,在你需要用到自己的视图类的地方进行强制类型转换,所以在你cpp里面包含上文档类和视图类的头文件(注意文档类包含在前)。然后你在视图类的头文件里面声明你的类,同样你的视图类的头文件要包含这个类的头文件,但视图类的cpp里面不需要包含这个类的头文件。这样就应该没问题了。我说的可能有乱,不懂可以离线留言。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询