在MFC.H中给出了一个函数的原型,在MFC.CPP中给出了这个函数的定义。在MY.CPP中用到这个函数的话。在加载头文件的时候,写#include "MFC.H"还是#include"MFC.CPP"?
我觉得应该是写第一个#include"MFC.CPP"
可是在MY.CPP调用该函数时,应该是转道该函数的定义处,那样的话应该是#include "MFC.H"
可以给个合理的解释吗?

解决方案 »

  1.   

    写错了,
    在MFC.H中给出了一个函数的原型,在MFC.CPP中给出了这个函数的定义。在MY.CPP中用到这个函数的话。在加载头文件的时候,写#include "MFC.H"还是#include"MFC.CPP"?
    我觉得应该是写第一个#include"MFC.H"
    可是在MY.CPP调用该函数时,应该是转道该函数的定义处,那样的话应该是#include "MFC.CPP"
    可以给个合理的解释吗?
      

  2.   

    当然是#include"MFC.H"
    如果你不在MFC.H给出函数的定义就是#include "MFC.CPP"
    编译器会通过头文件找到正确的cpp文件的。
      

  3.   

    编译器倒不会去找.h对应的.cpp,而是分别编译,不信你将.cpp删掉,My.cpp照样编译通过。只是在连接的时候,需要mfc.cpp编译形成的.obj。
      

  4.   

    #include "MFC.h"
    不过你要把该类的实现文件加入到该工程,连接时要用到,
    至于编译器怎么找到实现文件,应该不难的,实现文件都有该类的声明。