怎么就delete出错了?delete一个CProgressCtrl控件对象导致崩溃
我先new了一个CProgressCtrl对象,然后在一个线程函数中释放它导致崩溃。
用到的结构体
struct PAR_TO_PROTHREAD{
CProgressCtrl* pPro;
TCHAR *filename;
};
afx_msg LRESULT CUpDownDlg::OnUp(WPARAM wParam, LPARAM lParam)
{
TCHAR *filename = (TCHAR*)wParam;
CProgressCtrl *upPross = new CProgressCtrl;
upPross->Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH,CRect(10,10,200,30),this,134);
PAR_TO_PROTHREAD *par = new PAR_TO_PROTHREAD;
memset(par,0,sizeof(PAR_TO_PROTHREAD));
par->pPro = upPross;
par->filename = filename;
CreateThread(NULL,0,UpDownProThreadFunc,(LPVOID)par,0,NULL);
return 0;
}
DWORD WINAPI UpDownProThreadFunc(LPVOID lpParam)
{
PAR_TO_PROTHREAD *par = (PAR_TO_PROTHREAD*)lpParam;
CProgressCtrl *pro = par->pPro;
TCHAR *filename = par->filename;
//。。。
delete pro; //一到这句就崩溃,不知为什么?
delete[] filename;
delete par;