我的头文件中有用到一些定义,如directshow IBaseFilter,IVMRWindowlessControl9
我用struct IVMRWindowlessControl9; 可以编译通过,
但我的AM_MEDIA_TYPE,如果定义 struct AM_MEDIA_TYPE;
编译出现:error C2371: 'AM_MEDIA_TYPE' : redefinition; different basic types
-------------------
我该怎么做呢?

解决方案 »

  1.   

    #ifndef MY_DATA_DEFINED
    #define MY_DATA_DEFINED
    ... your data structure defined here
    #endif
      

  2.   

    To:masterz(www.fruitfruit.com) 
    这个struct不是我定义的,是我include directshow的定义的struct,
    而我不希望我的dll,也要客户开发,也要include ddirectshow的head file
      

  3.   

    如果是class,我可以定义
    class classname;就可以了 这样就可以不在headfile里不用include 这个class的头文件。
      

  4.   

    在你的头文件中不要包含任何其他的头文件,需要的struct和 class
    全部用class classname;
    所用到的class struct东西都用指针。这样你的头文件就不依赖其他的头文件了。