最近两三天被一个MFC的编译问题烦死了,直到今天才解决。
问题如下:
D:\Temp\vc\Scribble\ScribbleDoc.h(25) : error C2143: syntax error : missing ';' before '<'
D:\Temp\vc\Scribble\ScribbleDoc.h(25) : error C2501: 'CArray' : missing storage-class or type specifiers
D:\Temp\vc\Scribble\ScribbleDoc.h(25) : error C2059: syntax error : '<'
D:\Temp\vc\Scribble\ScribbleDoc.h(25) : error C2238: unexpected token(s) preceding ';'
。。。
这些错误定位在如下语句:
CArray<CPoint,CPoint> m_pointArray;
在这语句的前后怎么查都没有少分号啊。
更奇怪的是这些代码是照着微软的例子输入的,微软带的例子能够编译通过,为什么自己输入却编译不过?
难道真的跟人品有关吗,况且我人品也不差啊!郁闷啊。。。
也试了很多办法,都没成功。
后来查网上资料得知要在stdafx.h头文件中包含afxtempl.h头文件。
试了下在stdafx.h中
#include <afxtempl.h>
编译成功!