'IFileDialog' : no GUID has been associated with this object

时间:2020-12-21 20:26:01

在VS2010中使用IFileDialog,提示一下错误:

'IFileDialog' : no GUID has been associated with this object

MSDN上明确表示在VISTA之后,SHBrowseForFolder已经被IFileDialog取代了,但是为什么编译不通呢?

原因在此:

#ifndef _WIN32_WINNT        // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0501    // Change this to the appropriate value to target Windows 2000 or later.
#endif

这里的定义还是从windows2000开始,而IFileDialog从VISTA才有的,所以编译不过。这里需要将0x0501改成0x0600。