Unhandled Exception при закрытии диалога с VSFlexGrid
От: Captain_Blood  
Дата: 24.06.03 15:15
Оценка:
Доброе время суток, многоуважаемый Олл

Помогите решить проблему. В программе на VC++ есть немодальный диалог. Его единственный экземпляр существует все время жизни программы и разрушается при выходе из нее. На диалоге на ходится VSFlexGrid (7.0 Light).

В некоторых случаях (вроде бы закономерность не улавливается) при отработке деструктора возникает unhandled exception. Отладчик показывает следующее дерево вызовов:

CMyDialog::~CMyDialog()
{
. . .
} -> текущая строка

~_com_ptr_t() throw()
{
_Release();

} -> текущая строка

void _Release() throw()
{
if (m_pInterface != NULL) {
m_pInterface->Release(); // здесь ошибка
}
}

Две последние функции из файла COMIP.H (Copyright Microsoft).

Указатель m_pInterface в функции _Release это указатель, через который я работаю с VSFlexGrid. Он был получен следующим путем:

в объявлении класса:

CVSFlexGrid m_grd;
IVSFlexGridPtr m_grdi;

в OnInitDialog:

m_grdi = m_grd.GetControlUnknown();

В проекте существует много диалогов и view с VSFlexGrid, но проблема только с этим

Подскажите пожалуйста, в чем глюк и в какую сторону копать.

Заранее благодарен за идеи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.