У меня есть элемент управления ActiveX, написанный на C ++, который работает в Internet Explorer 8. В большинстве случаев (около 90%), когда вкладка или браузер, содержащие элемент управления, закрыты, происходит нарушение прав доступа, подобное этому:
The thread 'Win32 Thread' (0x1bf0) has exited with code 0 (0x0).
Unhandled exception at 0x77b3b9fd in iexplore.exe: 0xC0000005: Access violation reading location 0x65007408.
Нарушение прав доступа происходит после вызова OnDestroy (), но до вызова деструктора элемента управления.
В выводе отладки говорится:
No symbols are loaded for any call stack frame. The source code cannot be displayed.
Ни один из моих кодов отсутствует в трассировке стека, хотя, возможно, куча была повреждена в какой-то более ранний момент во время выполнения.
Какие события жизненного цикла получает элемент управления ActiveX между вызовом OnDestroy () и деструктором элемента управления?