在DLL中建立了一个类ClassinDLL,然后在引用程序中建立了一个ClassinDLL的对象(位于对话框类中,是私有成员),但是ClassinDLL的构造函数会调用,但ClassinDLL的析构函数不会被调用,这是为什么?

解决方案 »

  1.   


    说详细点,你用什么类型dll,导出怎么写的,
    你怎么知道析构没调用
      

  2.   

    但是ClassinDLL的构造函数会调用,但ClassinDLL的析构函数不会被调用到底会不会调用?呵呵
      

  3.   

    是扩展类型的DLL,
    类声明:class AFX_EXT_CLASS ClassinDLL : public CObject  
    {
    public:
             ClassinDLL();
    virtual ~ClassinDLL();};
    实现:ClassinDLL::ClassinDLL()
    {
    AfxMessageBox("ClassinDLL对象建立!");
    }ClassinDLL::~ClassinDLL()
    {
    AfxMessageBox("KeyboardHook对象销毁!");
    }直到调用程序退出(是个对话框),也没见("KeyboardHook对象销毁!")出来!
      

  4.   

    更正一下,问题应该是:
    ClassinDLL的构造函数会被调用,但ClassinDLL的析构函数不会被调用,这是为什么?
      

  5.   

    经调试发现ClassinDLL的析构函数也被调用,但是AfxMessageBox("KeyboardHook对象销毁!");
    却未起作用,怎么回事?
      

  6.   

    加 virtual ,用虚析构函数