(Visual Studio 2010 / Visual C ++ / Windows 7)
example.cpp:
#include <Shlobj.h>
#pragma comment (lib, "Shell32.lib")
...
void example()
{
SHGetKnownFolderPath(...) // undefined
}
我根据documentation和我在其他帖子中看到的内容做了一切,但它仍然无效。
答案 0 :(得分:2)
我有完全相同的问题。另一个具有相同代码和辅助文件(但包含不同的文件)的项目正在运行。
将#include <Shlobj.h>
放在文件顶部解决了问题。
它可能无法复制,因为它应该没有这样做。可能是另一个Visual Studio错误。
答案 1 :(得分:1)
在所有包含之前尝试放入以下声明:
#define WINVER 0x0600
#define _WIN32_WINNT 0x0600
由于documentation表示它需要Vista / 2008最低版本。