SDI 模型中,为什么在*view.h中有doc的指针,而没有发现*doc.h被包含
#if !defined(AFX_TESTVIEWVIEW_H__5C128BD4_0D25_4612_9A97_E3DE73A64EEC__INCLUDED_)
#define AFX_TESTVIEWVIEW_H__5C128BD4_0D25_4612_9A97_E3DE73A64EEC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CTestViewView : public CFormView
{
protected: // create from serialization only
CTestViewView();
DECLARE_DYNCREATE(CTestViewView)
public:
//{{AFX_DATA(CTestViewView)
enum { IDD = IDD_TESTVIEW_FORM };
CListCtrl m_listctrl;
//}}AFX_DATA
// Attributes
public:
CTestViewDoc* GetDocument();
这里CTestViewDoc为什么可以被编译通过,
因为这个文件没有包括TestViewDoc.h啊,
问题点数:20、回复次数:5Top
1 楼csdn_cht(欣欣兽)回复于 2004-08-03 21:06:57 得分 0
你看看view.cpp的头几行,它首先包含了doc.h,然后才包含view.h。这样就等于是包含了doc.h。但如果你在其他一个文件中只包含view.h的话,肯定会出错。
// ExplainView.cpp : implementation of the CExplainView class
//
#include "stdafx.h"
#include "Explain.h"
#include "ExplainDoc.h" 《=====//就是这里。
#include "ExplainView.h" <===这是视图的头文件。
Top
2 楼snowx(宠物幽灵)回复于 2004-08-04 08:58:09 得分 0
hehe,因为你的 xxxview.cpp 文件,是先包含 了 xxxdoc.h 然后再包含 xxxxview.h 的
不信,你调换一下看看Top
3 楼xyfm()回复于 2004-08-04 09:33:19 得分 20
楼上的,按照您的思路,我任意生成一个类CTEST,然后在xxxview.cpp中包括进去(#include 在xxxview.h之前),然后我在xxxview.h中这样声明CTest* p;编译过不去啊!怎么解释Top
4 楼max_xy(夏平生)回复于 2004-08-09 07:39:30 得分 0
难道这个问题,就没有人能解释么????Top
5 楼lijiecong(老头)回复于 2004-08-09 07:56:43 得分 0
在程序的InitialInstance中 有CSingleDocTemplate 或者CMultiDocTemplate的对象 ,框架,DOC,VIEW都是在这个时候创建的。VIEW中有一个m_pDocumnet成员,在创建VIEW时付的植。就这样。Top




