【发布时间】:2015-07-24 09:10:24
【问题描述】:
从昨天早上开始我就遇到了一个问题,现在让我发疯了。
问题是我想创建一个对话框来浏览文件夹。 对于比 Vista 更早的每个操作系统,我都使用 SHBrowseForFolder() 方法,该方法运行良好(也适用于 Vista 和更新版本)。
对于 Vista 和更新版本,由于性能、更好的 GUI 等原因,我想使用 IFileDialog。
当我尝试为 IFileDialog 编译实现的代码时,我收到以下“无 GUID”错误:
代码:
IFileDialog *pfd = NULL;
HRESULT hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pfd));
错误:
error C2787: 'IFileDialog' : no GUID has been associated with this object
在与我老板的谈话中,他告诉我,由于与 XP 的兼容性,我们无法将编译器标志设置为 vista 及以上。通过设置编译器标志在这里解决了这个问题:How do I use iFileDialog in a VC++ 2010 project converted from VC++ 6.0?
仍然可以使用 IFileDialog 吗?也许类可以动态链接?
能否请您给我一些关于如何实施的建议? 提前致谢。
【问题讨论】:
标签: c++ com dialog guid folderbrowserdialog