long6803 发表于 2008-4-10 15:20

请教VC的一个问题

CCmdTarget::~CCmdTarget()
{
#ifndef _AFX_NO_OLE_SUPPORT
    if (m_xDispatch.m_vtbl != 0)
      ((COleDispatchImpl*)&m_xDispatch)->Disconnect();
    ASSERT(m_dwRef <= 1);出错位置;
#endif
#ifdef _AFXDLL
    m_pModuleState = NULL;
#endif
}
程序在编译和运行时都没有问题,但是关闭时报错,调试后显示出来的错误就是ASSERT(m_dwRef <= 1);这句

哪位高手告诉我出错载哪里啊?该怎么解决啊?

iptton 发表于 2008-4-10 15:28

m_dwRef在Disconnect()后变了没有。。。问题不在于ASSERT..

gyCai 发表于 2008-4-10 16:05

前面的操作导致m_dwRef〉1了吧?

long6803 发表于 2008-4-10 21:35

原帖由 iptton 于 2008-4-10 15:28 发表 https://www.gdutbbs.com/images/common/back.gif
m_dwRef在Disconnect()后变了没有。。。问题不在于ASSERT..
不懂,能否说明白点,那个是系统里面的函数来着,是不是哪里调用出错啊?

iptton 发表于 2008-4-10 21:50

不怎么用过VC...
不过LZ就帖这点代码就是熟VC的人也看不到是哪里出错..

皇家救星 发表于 2008-4-11 21:36

回复 4 的帖子

一般情况下问题是出在你调用时出错了

我以前试过定义了一个类指针,但忘了将指针指向对象就调用了该类的成员函数,导致类似这样的错误

上海租车网 发表于 2008-4-16 10:57

霉力没法挡 发表于 2008-4-17 20:06

看你的代码,说实在,看不出哪不对劲。
页: [1]
查看完整版本: 请教VC的一个问题