hur.cn - 华软网

 热门搜索

头文件貌似相互引用。。

  作者:未知    来源:网络    更新时间:2009/6/6
一个SDI程序,
我在VIEW类的CPP文件中要用到MainFrm的指针 所以 #include "MainFrm.h" 
然后又一对话框类MyDlg(非模式对话框),在MainFrm中作为成员对象,所以MainFrm.h文件里 又#include "MyDlg.h"
最后是一个自绘控件,这个控件是在对话框中作为成员变量的,也就是说MyDlg.h中 #include "MyCtrl.h"
控件类中需要引用View类指针,因此在其MyCtrl.CPP文件中还得#include "MyView.h"

最后编译出错


e:\tcs\myview.h(22) : error C2143: syntax error : missing ';' before '*'
e:\tcs\myview.h(22) : error C2501: 'CMyDoc' : missing storage-class or type specifiers
e:\tcs\myview.h(22) : error C2501: 'GetDocument' : missing storage-class or type specifiers

class CMyView : public CView
{
protected: // create from serialization only
CMyView();
DECLARE_DYNCREATE(CMyView)

// Attributes
public:

-> CMyDoc* GetDocument();       指向是这行 出错。。。

怎么弄啊
---华软 网友回答---
  class="deleted_message"> 该回复于2009-06-07 00:48:18被版主删除
---华软网友回复---
View类没有认到Doc类

在View类的.h或.cpp中包含Doc类的头文件
(view类声明中用的是Doc *,因此一般包含在cpp文件中就可以了)
---华软网友回复---
btw,一般MFC生成的头文件都会给你加上 预编译指令,保证你的h文件不会被重复包含

#progma once
或者使用
#ifndef xxxxxx__H
#define xxxxxx__H


...头文件内容


#endif


---华软网友回复---
对于view/doc文档模式,记得包含对应的doc文件
#include "MyDoc.h" 
#include "MyView.h" 

---华软网友回复---
先加doc.h ,后加view.h
这个顺序不能颠倒!!!!!!!!!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。