2009-06-08 70 views
1

我在win32 fn :: SHBrowseForFolder()中發生崩潰。 的代碼如下:在SHBrowseForFolder()內部發生崩潰

  BROWSEINFO bi = {0}; 
    TCHAR szDisplayName[MAX_PATH]; 
    szDisplayName[0] = ' '; 

    bi.hwndOwner  = NULL; 
    bi.pidlRoot   = NULL; 
    bi.pszDisplayName = szDisplayName; 
    bi.lpszTitle  = _T("Please select a folder :"); 
    bi.ulFlags   = BIF_RETURNONLYFSDIRS; 
    bi.lParam   = NULL; 
    bi.iImage   = 0; 

    LPITEMIDLIST pidl = SHBrowseForFolder(&bi);//crashes 

崩潰只是在於一些XP機器,不來在Vista計算機上。 請提出一些解決方案。

謝謝。

回答

1

你在打電話給CoInitialize嗎?

+0

使用CoInitialize後它正在工作。 非常感謝。 – 2009-06-08 10:18:14

0

墜機的性質是什麼?我們在談論可恢復的錯誤,還是未處理的芯片異常(如訪問衝突)? ShBrowse函數通常以某種方式調用資源管理器 - 它是崩潰的資源管理器嗎?也許它是由某種shell插件引起的?你是否先初始化COM?也許一些外部因素,如防病毒?

+0

當我在調試模式下運行它時,它會發出以下消息: - 「ExeName.exe觸發了一個斷點」 – 2009-06-08 09:59:18

0

原因之一是szDisplayName不是空的終止!

相關問題