在包括一个文件时,如果用的是尖括号〈,那么包含的将是(编译)系统的文件,如果用的是双引号 ",那么包含的将是当前路径下的文件,二者是不同的
例如在VC6.0中,编译系统本身带有 AFXMSG_.H,所以如果使用
#include<AFXMSG.H>
那么包含的是编译系统的文件,如果使用
#include "AFXMSG.H"
那么包含的是当前路径下的文件,
在《深入浅出MFC》(2e)的源程序(未更正的源程序)中常因为这个问题出错,即使把AFXMSG.H中的内容修改得跟更正后的源程序一模一样,只要不在MFC.h这个文件中把
#include<AFXMSG.H>改为#include "AFXMSG.H"
那么结果仍然是错因为编译器所引用的并不是当前路径下的AFXMSG.H文件,而是编译系统本身自带的
AFXMSG.H文件,在AFXMSG.H上右键单击,可以看到,一个是Open Docment "AFXMSG.H"一个是
Open Docment <AFXMSG.H>