我用App Wizzard生成一个DLL(支持MFC),然后在一个自己定义的类(不是用ClassWizzard生成的)中想用theApp变量,IEWebGuard.cpp文件包含了#include "IEGuard.h"语句,在IEWebGuard.cpp中加入了“extern CIEGuardApp theApp”语句(位置也没有问题),但是编译的时候老出错,missing ‘;’ before identifier ‘theApp’
哪位大侠出手,谢谢!!!

解决方案 »

  1.   

    theApp 也可以给DLL使用吗?
      

  2.   

    太不详细了,看提示是少了分号。你是不是类声明
    class 
    {
    };
    后面的分号没有啊
      

  3.   

    多谢几位的关注,
    CIEGuardApp是自动生成的,类没有问题,分号也有的。IEGuard.cpp中定义了CIEGuardApp theApp;
    CIEWebGuard是我自己写的类,需要用到CIEGuardApp类,我申明了extern CIEGuardApp theApp;,也包含了头文件IEGuard.h
    我做了一个别的例子(EXE的)没有问题,但是我这个就不行,不知道为什么?
      

  4.   

    要include CIEGuardApp的头文件
      

  5.   

    可以用CWinApp* pApp=AfxGetApp();来获得应用程序类对象的指针
      

  6.   

    extern CIEGuardApp theApp这个变量的声明应该是在头文件中的,比如IEGuardApp.h,你包含了这个头文件就可以用了,不需要另外声明。当然,如果你没有链接IEGuardApp.cpp生成的目标文件,比如IEGuardApp.obj,那么会报变量没有定义的错误。