我刚创建一个DLL项目,类写成class AFX_EXT_CLASS CtestdllApp : public CWinApp 可是发现
#define AFX_EXT_CLASS       AFX_CLASS_IMPORT 是有效的.
#define AFX_EXT_CLASS       AFX_CLASS_EXPORT 是灰的,不可用
导致编译错误,这是怎么回事?我看了别人的程序,#define AFX_EXT_CLASS       AFX_CLASS_EXPORT 是有效的.

解决方案 »

  1.   

    我手动改成AFX_CLASS_EXPORT  就OK了.编译不会有错误. 
    #ifdef _AFXEXT
    #define AFX_EXT_CLASS       AFX_CLASS_EXPORT
    #define AFX_EXT_API         AFX_API_EXPORT
    #define AFX_EXT_DATA        AFX_DATA_EXPORT
    #define AFX_EXT_DATADEF
    #else
    #define AFX_EXT_CLASS       AFX_CLASS_IMPORT
    #define AFX_EXT_API         AFX_API_IMPORT
    #define AFX_EXT_DATA        AFX_DATA_IMPORT
    #define AFX_EXT_DATADEF
    #endif不知道这个_AFXEXT 是在哪里定义了??
      

  2.   

    分享答案:
    1.在项目属性->  C/C++->  Preprocessor-->  Preprocessor Definetions中
    手动加入_AFXEXT 这个宏.