我在编译程序的时候发生这样的错误:
d:\vc\poppad\popfile.c(201) : fatal error C1010: unexpected end of file while looking for precompiled header directive
我所作的只是把原来放在main主函数文件里声明的popfile.c函数放到另外一个信的文件popfile.h,并在main主函数文建立包含它
***********in poppad.cpp**************
#include "stdafx.h"
#include "commdlg.h"
#include "resource.h"
#include "PopFile.h"
...
***********in popfile.h***************
void PopFileInitialize(HWND);
BOOL PopFileOpenDlg(HWND, PTSTR, PTSTR);
BOOL PopFileSaveDlg(HWND, PTSTR, PTSTR);
BOOL PopFileRead(HWND, PTSTR);
BOOL PopFileWrite(HWND, PTSTR);
***********in popfile.c***************
#include "windows.h"
#include "commdlg.h"
#include "PopFile.h"
...
那位高手愿意指点一下,不胜感激

解决方案 »

  1.   

    在popfile.h中加入
    #include "stdafx.h"
      

  2.   

    是否应该在popfile.c加入对预编译头文件的包含
    #include "stdafx.h"
      

  3.   

    在popfile.h有HWND结构是不是该在这个头文件里include一下<windows.h>?你试试
      

  4.   

    纠正一下:
    是不是在这个头文件里include一下"stdafx.h"
      

  5.   

    在 popfile.c 中加入
    #include "stdafx.h"
    而且一定要加在其它的 #include "XXXXX.h" 之前;
      

  6.   

    我试了一下,编译器告诉我:
    fatal error C1853: 'Debug/PopPad.pch' is not a precompiled header file created with this compiler
    经过查看,发现原来c++的源程序文件与c的不能相兼容
    我把文件改成.cpp就ok了,
    这是为什么,有什么更好的解决方法吗?
      

  7.   

    昨天晚上问的问题,还没有人回答吗?
    我尝试这么做,在每个.c文件加入
    #ifdef _cplusplus
    extern "C" {
    #endif
    ...program...
    #ifdef _cplusplus
    }
    #endif
    结果还是一样,到底怎么回事?