При закрытии приложения я получаю следующее отладочное утверждение:
Я отладил поток и обнаружил, что утверждение происходит в CWnd :: DestroyWindow ()
// Should have been detached by OnNcDestroy
#ifdef _DEBUG
ASSERT(pMap->LookupPermanent(hWndOrig) == NULL);
Мой класс является производным от COleControl, который, в свою очередь, является производным от CWnd.
Создание объекта происходит в WinNET-форме .NET, а при закрытии приложения вызывается деструктор объекта ипришло подтверждение:
void CSimple::OnFinalRelease()
{
if (!m_bFinalReleaseCalled)
{
m_bFinalReleaseCalled = TRUE;
ReleaseCaches();
CWnd::OnNcDestroy(); --> explicitly called OnNcDestroy()
if (m_hWnd != NULL)
DestroyWindow();
CCmdTarget::OnFinalRelease();
}
Я не уверен, что это правильное решение.Я также не уверен, что проблема в стороне .NET.