C++ 未找到过程入口点SHGetKnownFolderPath shell32

C++ 未找到过程入口点SHGetKnownFolderPath shell32,c++,c++11,visual-studio-2013,windows-xp,windows-10,C++,C++11,Visual Studio 2013,Windows Xp,Windows 10,我正在使用visual studio 2013并编译一些东西,以便在windows XP上运行它。它在我的windows 10计算机上运行良好,但当我在XP下启动时,会出现以下错误: the procedure entry point "SHGetKnownFolderPath" could not be located in the dynamic link library shell32.dll 我的vs项目中的选项设置为XP variant(v120\U XP)。我还尝试将_WIN32_

我正在使用visual studio 2013并编译一些东西,以便在windows XP上运行它。它在我的windows 10计算机上运行良好,但当我在XP下启动时,会出现以下错误:

the procedure entry point "SHGetKnownFolderPath" could not be located in the dynamic link library shell32.dll
我的vs项目中的选项设置为XP variant(v120\U XP)。我还尝试将_WIN32_WINNT(以及我在互联网上找到的其他定义)设置为XP define variants(例如_WIN32_WINNT=0x0501),但没有成功

我正在使用一些库,它们都是在v120\U XP上编译的(例如boost)

欢迎任何建议,让我的项目在windows xp上运行

更新: 对不起,是我的错。甚至所有的库都被迫不使用XP没有提供的任何东西,我错过了一个不是我自己编译的库,它使用的是
SHGetKnownFolderPath
。我通过转储所有库找到了它。它是SimConnect.lib,用于Prepar3D。后来我发现:

Prepar3D v2不是 与Windows XP兼容,不建议在Windows Vista上使用


SHGetKnownFolderPath
在XP中不存在,它只在Vista和更高版本中可用。

没错,但如果一切都是在XP模式下编译的,为什么会出现错误?如果您的代码使用的函数在XP上不存在,那么它就不会在XP上运行。将编译器设置为XP模式不会改变这一点。