C++ LNK2019未解析的外部符号SHGetFolderPathW

C++ LNK2019未解析的外部符号SHGetFolderPathW,c++,qt,lnk2019,C++,Qt,Lnk2019,所以 我遇到了一个奇怪的错误,似乎找不到解决办法。我正在QtCreator3.1.1上编写这段代码。代码是: #include <ShlObj.h> #include <string> #include <vector> static std::wstring GetUserDirectory() { std::wstring returnPath; TCHAR path[MAX_PATH]; HRESULT hr = SHGetFo

所以

我遇到了一个奇怪的错误,似乎找不到解决办法。我正在QtCreator3.1.1上编写这段代码。代码是:

#include <ShlObj.h>
#include <string>
#include <vector>

static std::wstring GetUserDirectory()
{
    std::wstring returnPath;
    TCHAR path[MAX_PATH];
    HRESULT hr = SHGetFolderPath(NULL, CSIDL_COMMON_DOCUMENTS, NULL,
                                 SHGFP_TYPE_CURRENT, path);
    if (hr == S_OK)
    {
        returnPath = path;
        return returnPath;
    }
    else
    {
        return NULL;
    }
}
#包括
#包括
#包括
静态std::wstring GetUserDirectory()
{
std::wstring返回路径;
TCHAR路径[最大路径];
HRESULT hr=SHGetFolderPath(NULL,CSIDL_公共_文档,NULL,
SHGFP_类型_电流,路径);
如果(hr==S_正常)
{
返回路径=路径;
返回路径;
}
其他的
{
返回NULL;
}
}
当我尝试构建程序时,会出现以下链接错误:

错误:LNK2019:函数“public:static class std::basic\u string,class std::allocator>\uu cdecl FileUtils::GetUserDirectory(void)”中引用了未解析的外部符号\uuuu imp\u SHGetFolderPathW(?GetUserDirectory@FileUtils@@SA?AV?$basic_string@_WU?$char_traits@_W@性病病毒$allocator@_W@2@@std@@XZ)

错误:LNK1120:1个未解析的外部

我假设这些错误与上述代码有关,因为据我所知,SHGetFolderPath只是SHGetFolderPathW的包装器。但是,我不确定为什么会出现这个错误。任何帮助都将不胜感激


谢谢,

这是一个Windows链接器错误,原因是链接过程中未包含正确的库。阅读以下位置的函数文档:

然后你会在底部看到,你必须包括

库:Shell32.lib


如果您使用的是Qt,这意味着您必须将
LIBS+=lshell32
添加到Qt项目文件中。

对于此类问题几乎总是作为副本应用,对不起。您是否将Shell32.lib添加到库中?谢谢,这解决了我的问题。