MFC打开多张图片,并以缩略图的形式打开,但是程序有异常,大家帮忙看看咋回事啊

MFC打开多张图片,并以缩略图的形式打开,但是程序有错误,大家帮忙看看怎么回事啊???
void CtestView::OnOpen()
{
// TODO: 在此添加命令处理程序代码
 HDC hdc = ::GetDC(m_hWnd) ;
        GetClientRect(rect);

 
CString filename;
        CString filter;
        filter="所有文件(*.*)|*.bmp;*.jpg;*.gif;*.tiff| BMP(*.bmp)|*.bmp| JPG(*.jpg)|*.jpg| GIF(*.gif)|*.gif| TIFF(*.tif)|*.tif||";
        CFileDialog dlg(TRUE,NULL,NULL,OFN_ALLOWMULTISELECT | OFN_ENABLESIZING | OFN_HIDEREADONLY,filter,NULL); 

  int MIN_FILE_NUMBER = 20;//最多同时选中文件数
            dlg.m_ofn.lpstrFile = new TCHAR[_MAX_PATH * MIN_FILE_NUMBER]; //重新定义缓冲区大小
            memset(dlg.m_ofn.lpstrFile, 0, _MAX_PATH * MIN_FILE_NUMBER);  //初始化定义的缓冲区
            dlg.m_ofn.nMaxFile = _MAX_PATH * MIN_FILE_NUMBER;
          
            if(IDOK==dlg.DoModal())
            {
                POSITION pos = dlg.GetStartPosition();
                while (NULL != pos)
                {
                    filename =dlg.GetNextPathName(pos);//获取文件名
                    cimage.Load(filename);
                }
 
            }
       
CListCtrl m_ListCtrl;
 m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT|LVS_EDITLABELS, CRect(0,0,400,200), this, 0);
 m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle()|LVS_EX_SUBITEMIMAGES );
 CImageList m_Imagelist;
 m_Imagelist.Create(24, 24,ILC_COLOR4|ILC_MASK, 4, 4); 

int imageCount=0;
CString *pImageNameList=&filename;
for (int i=0;i<imageCount;i++)
{
cimage.Load(pImageNameList[i],CXIMAGE_FORMAT_BMP);
cimage.Resample(96,96,2);
CDC *pDC = GetDC();
HBITMAP hBit=cimage.MakeBitmap(pDC->GetSafeHdc());
CBitmap bmp;
bmp.Attach(hBit);
m_Imagelist.Add(&bmp,RGB(255, 255, 255));
bmp.Detach();
}

 m_ListCtrl.SetImageList(&m_Imagelist,LVSIL_SMALL); 
 LVITEM item;
 item.mask=LVIF_TEXT|LVIF_IMAGE;
 item.iItem=0; 
 item.iSubItem=0;
 item.pszText="";
 item.iImage=0;
 m_ListCtrl.InsertItem(&item);
 m_ListCtrl.SetItemText(0,0,pImageNameList[0]);
  for (int i=1;i<imageCount;i++)
 {
 item.iItem=i;           
 item.iImage=i;
 m_ListCtrl.InsertItem(&item);
 m_ListCtrl.SetItemText(i,0,pImageNameList[i]);
 }

  DWORD  dwOldStyle,dwNewStyle; 
  dwNewStyle = LVS_ICON;
  HWND  hWndLt=m_ListCtrl.GetSafeHwnd();
  dwOldStyle=GetWindowLong(hWndLt, GWL_STYLE);
  if((dwOldStyle & LVS_TYPEMASK)!=LVS_ICON) 
  {
 dwOldStyle &=~LVS_TYPEMASK; 
 dwNewStyle |=dwOldStyle; 
 SetWindowLong(hWndLt, GWL_STYLE, dwNewStyle);
  }




  
}
------解决思路----------------------
CListCtrl m_ListCtrl; 和 CImageList m_Imagelist; 不要用局部变量, 作用域你懂的