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

在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。

原文地址:https://www.cnblogs.com/licb/p/6617293.html