我在win32 fn :: 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机器上。 请提出一些解决方案。
感谢。
答案 0 :(得分:1)
您是否正在呼叫CoInitialize?
答案 1 :(得分:0)
坠机的性质是什么?我们是在谈论可恢复的错误,还是未处理的芯片异常,例如访问冲突? ShBrowse
函数通常以某种方式调用资源管理器 - 它是崩溃的资源管理器吗?也许是由某种shell插件引起的?你首先初始化了COM吗?也许是一些外部因素,如反病毒?
答案 2 :(得分:0)
一个原因是szDisplayName不是空终止的!