请问下面哪里错了。void CIconViewDlg::ShowFileIcons(const CString sFileName)
{
    int nCount;
nCount = (int)ExtractIcon(0, sFileName, -1); CImageList il;
il.Create(32, 32, ILC_COLOR32, 1);
m_wndIconList.SetImageList(&il, LVSIL_NORMAL); for (int i = 0; i < nCount; i++)
{
HICON hIcon;
        hIcon = ExtractIcon(0, sFileName, i);
if (hIcon != 0)
{   
il.Add(hIcon);
m_wndIconList.InsertItem(i, "test", i);
}
    }
}
主要是这句出错  il.Add(hIcon);

解决方案 »

  1.   

    看看这段:68     UINT g_AddIcon(LPVOID pParam)
    69     {
    70       CPtrArray* paIcon = ((CPtrArray*)pParam);
    71       CPageFilesExeList* pExeFiles = (CPageFilesExeList*)paIcon->GetAt(0);
    72       CStringArray* psArrayExeNames = (CStringArray*)paIcon->GetAt(1);
    73       CImageList* pImagesSmall = (CImageList*)paIcon->GetAt(2);
    74       CImageList* pImagesLarge = (CImageList*)paIcon->GetAt(3);
    75     
    76       CString sIconPath;
    77       char* psIconPath;
    78       int j = psArrayExeNames->GetSize();
    79       for(int i = 1; i < j; i += 2)
    80       {
    81         sIconPath = psArrayExeNames->GetAt(i);
    82         psIconPath = sIconPath.GetBuffer(MAX_PATH);
    83     
    84         WORD wIconIndex = 0;
    85         HICON hExeIcon;
    86         if((hExeIcon = ExtractIcon(AfxGetInstanceHandle(), psIconPath, 0)) != NULL)
    87         {
    88           pImagesSmall->Add(hExeIcon);
    89           pImagesLarge->Add(hExeIcon);
    90         }
    91         else if((hExeIcon = ExtractAssociatedIcon(AfxGetInstanceHandle(), psIconPath, &wIconIndex)) != NULL)
    92         {
    93           pImagesSmall->Add(hExeIcon);
    94           pImagesLarge->Add(hExeIcon);
    95         }
    96         psArrayExeNames->GetAt(i).ReleaseBuffer();
    97     
    98         pExeFiles->Update(i / 2);
    99       }
    100     
    101       paIcon->RemoveAll();
    102       delete paIcon;
    103     
    104       return 0;
    105     }
      

  2.   

    m_pImagesSmall = new CImageList;
    122       m_pImagesSmall->Create(16, 16, ILC_COLORDDB | ILC_MASK, 1, 100);
    123       m_pImagesLarge = new CImageList;
    124       m_pImagesLarge->Create(32, 32, ILC_COLORDDB | ILC_MASK, 1, 100);