ATL: IPersistStreamInitImpl:InitNew失败解决思路
ATL: IPersistStreamInitImpl::InitNew失败
创建个ocx控件,在用浏览器调试的时候,发现OnCreate之后就有OnDestroy的事件响应了,之后就会包内存泄露。debug窗口中显示的就是ATL: IPersistStreamInitImpl::InitNew失败,可是这个时候应该还没有调用相关的接口,也就是说没有就算有内存泄露也不该发生在初始化的时候啊,各位大侠有遇到过类似的问题么,还请指教,万分感谢
------解决方案--------------------
默认的好像就是返回S_OK,你难道override了?
STDMETHOD(InitNew)() {
ATLTRACE(atlTraceCOM, 2,
_T("IPersistStreamInitImpl::InitNew\n"));
T* pT = static_cast<T*>(this);
pT->m_bRequiresSave = TRUE;
return S_OK;
}
或者没有放m_bRequiresSave,但是没有放的话编译也通不过。
创建个ocx控件,在用浏览器调试的时候,发现OnCreate之后就有OnDestroy的事件响应了,之后就会包内存泄露。debug窗口中显示的就是ATL: IPersistStreamInitImpl::InitNew失败,可是这个时候应该还没有调用相关的接口,也就是说没有就算有内存泄露也不该发生在初始化的时候啊,各位大侠有遇到过类似的问题么,还请指教,万分感谢
------解决方案--------------------
默认的好像就是返回S_OK,你难道override了?
STDMETHOD(InitNew)() {
ATLTRACE(atlTraceCOM, 2,
_T("IPersistStreamInitImpl::InitNew\n"));
T* pT = static_cast<T*>(this);
pT->m_bRequiresSave = TRUE;
return S_OK;
}
或者没有放m_bRequiresSave,但是没有放的话编译也通不过。