即使使用#include <shlobj.h>和#pragma comment(lib,“Shell32.lib”)</shlobj.h>也无法调用SHGetKnownFolderPath()

时间:2014-03-13 12:49:40

标签: c++ c visual-studio-2010 visual-c++ known-folders

(Visual Studio 2010 / Visual C ++ / Windows 7)

example.cpp:

#include <Shlobj.h>
#pragma comment (lib, "Shell32.lib")    
...
void example()
{
    SHGetKnownFolderPath(...) // undefined
}

我根据documentation和我在其他帖子中看到的内容做了一切,但它仍然无效。

2 个答案:

答案 0 :(得分:2)

我有完全相同的问题。另一个具有相同代码和辅助文件(但包含不同的文件)的项目正在运行。

#include <Shlobj.h>放在文件顶部解决了问题。

它可能无法复制,因为它应该没有这样做。可能是另一个Visual Studio错误。

答案 1 :(得分:1)

在所有包含之前尝试放入以下声明:

#define WINVER 0x0600
#define _WIN32_WINNT 0x0600

由于documentation表示它需要Vista / 2008最低版本。