|
typedef struct tagCONTROL
{ struct tagCONTROL* lpNext; // 下一个控件
void* lpVoid; // 下一个对话框
} CTRL, far* LPCTRL;
void Clear( LPCTRL lpDesktop )
{ LPCTRL lpVoid, lpNext;
// 删除对话框
for( LPCTRL lpDialog=lpDesktop; lpDialog; lpDialog=lpVoid )
{
// 释放控件
for( LPCTRL lpControl=lpDialog->lpNext; lpControl; lpControl=lpNext )
{ lpNext = lpControl->lpNext; delete lpControl;
}
lpVoid = (LPCTRL)lpDialog->lpVoid;
delete lpDialog;
}
}
lpDesktop是LPCTRL类型桌面指针,lpVoid维护着一个对话框列表,lpNext维护着一个控件列表
可是当我调用Clear释放所有对话框的时候,总是在释放第一个控件的时候就出现程序错误
大家能不能帮我看看为什么 |
|