SHGetSpecialFolderPath()未在此范围内声明

时间:2011-05-12 05:00:33

标签: c++ windows winapi

我无法编译我的程序SHGetSpecialFolderPath()未在程序范围内声明,而正在包含正确的标头(根据MSDN) http://msdn.microsoft.com/en-us/library/bb762204(v=vs.85).aspx

以下是我项目的标题:

#include <iostream>
#include <iostream>
#include <windows.h>
#include <algorithm>
#include <vector>
#include <fstream>
#include <direct.h>
#include <shlobj.h>

有错误: C:\ Users \ user \ Documents \ getAppData \ main.cpp | 31 |错误:在此范围内未声明`SHGetSpecialFolderPath'

shlobj.h是包含声明的标题。 任何想法为什么编译器抛出错误?以下是我调用函数的方法:

char appData[MAX_PATH];
SHGetSpecialFolderPath( NULL
                        ,appData
                        ,CSIDL_LOCAL_APPDATA
                        ,1 );
cout << appData << endl;

谢谢!

1 个答案:

答案 0 :(得分:1)

从MSDN页面:

  

Microsoft Internet Explorer 4.0   必须安装桌面更新   这个功能可用。

     

使用Windows 2000,此功能是   被ShGetFolderPath取代。您可以   在早期系统上使用此功能   通过包含可再发行的DLL,   Shfolder.dll中。

也许这是你的问题?