2009-06-08 68 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不是空的终止!

相关问题