终于解决了这个怪问题

来源:互联网 发布:阳西网络问政平台 编辑:程序博客网 时间:2024/06/09 15:50
 重复启动关闭MDI程序的子窗口就会出现一个异常,然后就中断到:
inline _variant_t::_variant_t(IDispatch* pSrc, bool fAddRef) throw()
{
 V_VT(this) = VT_DISPATCH;
 V_DISPATCH(this) = pSrc;
 // Need the AddRef() as VariantClear() calls Release(), unless fAddRef
 // false indicates we're taking ownership
 //
 if (fAddRef) {
  V_DISPATCH(this)->AddRef();  《--------这一行。
}
}

并且fAddRef的value是1,开始还以为启动子FRMAE的时候哪地方没有释放或关闭,最后跟踪啊调试啊找问题啊,最后找到罪魁祸首的是我自己封装的数据库类,在构造函数中没有调用::CoInitialize(NULL);而在析构函数中却调用了::CoUninitialize() 难怪不得会出错啊。。粗心了。