在使用VC6.0实现窗口切分时,使用如下代码:
BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext )
{
CRect rc;
GetClientRect(&rc);
CSize paneSize(rc.Width()/2,rc.Height()/2);
m_Splitter.CreateStatic(this,2,1);
m_Splitter.CreateView(0,0,RUNTIME_CLASS(CExampleView),paneSize,pContext);
m_Splitter.CreateView(1,0,RUNTIME_CLASS(CExampleView),paneSize,pContext);
return TRUE;
}
在框架类的实现文件中包含文档类和视图类的头文件:
#incude "ExampleView.h"
#include "ExampleDoc.h"
会出现如下编译错误:
f:\vc应用编程150例\example004\exampleview.h(21) : error C2143: syntax error : missing ';' before '*'
f:\vc应用编程150例\example004\exampleview.h(21) : error C2501: 'CExampleDoc' : missing storage-class or type specifiers
f:\vc应用编程150例\example004\exampleview.h(21) : error C2501: 'GetDocument' : missing storage-class or type specifiers
Error executing cl.exe.
将包含头文件反过来写,即
#include "ExampleDoc.h"
#incude "ExampleView.h"
编译通过且可以运行。这是为什么?