大家好,请教一个问题。请问为什么我添加了VLC的控件后什么都没做,但退出程序的时候就出错呢?
CCmdTarget::~CCmdTarget()
{
#ifndef _AFX_NO_OLE_SUPPORT
if (m_xDispatch.m_vtbl != 0)
((COleDispatchImpl*)&m_xDispatch)->Disconnect();
ASSERT(m_dwRef <= 1);//在这里出错了
#endif
m_pModuleState = NULL;
}
谢谢!

解决方案 »

  1.   

    接口指针可能多释放了一次。比如,有一个智能指针p,可能有类似这样错误的用法。
    p->Release();  //这一句是不需要的。
    p=NULL;
      

  2.   

    ASSERT(m_dwRef <= 1);// 说引用数应当<= 1
    所以楼主的情况应当是多Add了,少Release了吧,
    2楼所说可能正好相反。。
      

  3.   

    对象释放问题,DEBUG版本出个断言而已。
      

  4.   

    谢谢各位啊!!但我添加的是一个VLC的控件,一添加了再运行程序就出错了,请问我应该在哪里add或者release呢?关联这个控件的对象在哪里?谢谢!