MFC编程中我想在一个头文件中定义自己的数据类型,然后在需要的文件中包含该头文件。这个头文件怎样写?(我File-〉new了一个头文件,然后定义数据类型,可直接加进来总是编译不了,是不是还要在头文件中加入条件编译语句,怎样加?)

解决方案 »

  1.   

    定义一个DataStruct.h 头文件
    //DataStruct.hstruct PACK
    {
      DWORD id;
      DWORD len;
    };主函数
    //main.cpp
    #include "DataStruct.h"
    int main()
    {
      PACK p;
      return 0;
    }这样就可以了呀
      

  2.   

    试试在你的头文件里加入 #include "stdafx.h"
    请写出你的编译错误的具体内容,否则无法判断
      

  3.   

    加入#include "stdafx.h" 也不行呀!!
    cuomj 的方法不行,我就是这样做的,我的是个单文档程序,先新建一个头文件,然后包含
    错误:
    GPCWND.cpp
    f:\程序调试\gpcwnd\mainfrm.h(12) : error C2143: syntax error : missing ';' before '<class-head>'
    f:\程序调试\gpcwnd\mainfrm.h(12) : fatal error C1004: unexpected end of file found
    Generating Code...
    Compiling...
    MainFrm.cpp
    f:\程序调试\gpcwnd\mainfrm.h(12) : error C2143: syntax error : missing ';' before '<class-head>'
    f:\程序调试\gpcwnd\mainfrm.h(12) : fatal error C1004: unexpected end of file found
    Generating Code...
    Error executing cl.exe.GPCWND.exe - 4 error(s), 0 warning(s)
      

  4.   

    这个很简单,你可以先生成一个文本文件,然后加到工程中就可以了. 最好加上 once include 功能的宏 类似下面#ifndef XXX
    #define XXX//code#endif
      

  5.   

    楼上的能不能再详细一点? XXX代表什么?
      

  6.   

    XXX 就是你自己定义的一个宏名称 象下面#ifndef __VIRTTHREAD_H
    #define __VIRTTHREAD_H代码#endif这样的话,当在cpp里面include这个头文件的时候,__VIRTTHREAD_H 还没有定义, 所以 #ifdef #endif 里面的代码生效, 当 第二次include的时候, __VIRTTHREAD_H 已经被定义了, 所以 #ifdef #endif 里面的代码都被屏蔽了, 这样,就保证, 代码被 include 一次了。