Mfc 无法解决CSIDL_COMMON_APPDATA的未声明标识符错误

Mfc 无法解决CSIDL_COMMON_APPDATA的未声明标识符错误,mfc,visual-c++,visual-studio-6,Mfc,Visual C++,Visual Studio 6,根据,我应该包含“Shlobj.h”以便CSIDL_COMMON_APPDATA运行,但我仍然得到错误C2065:'CSIDL_COMMON_APPDATA':未声明的标识符 导致错误的行是 if(成功(shGetSpecialFolderPath(NULL,szPath,CSIDL\u COMMON\u APPDATA,FALSE)) 有人能帮忙吗?我正在使用Visual Studio 6.0用vc++编写代码,看起来您的shlobj.h版本无效(或旧)。从Microsoft下载最新的SDK,

根据,我应该包含“Shlobj.h”以便CSIDL_COMMON_APPDATA运行,但我仍然得到
错误C2065:'CSIDL_COMMON_APPDATA':未声明的标识符
导致错误的行是

if(成功(shGetSpecialFolderPath(NULL,szPath,CSIDL\u COMMON\u APPDATA,FALSE))


有人能帮忙吗?我正在使用Visual Studio 6.0用vc++编写代码,看起来您的shlobj.h版本无效(或旧)。从Microsoft下载最新的SDK,它将具有该文件的最新版本:


如果打开shlobj.h,CSIDL\u COMMON\u APPDATA是否已实际定义?是的,msdn正是这么说的!我知道它是这么说的,但为了确保您拥有正确版本的shlobj.h,您应该打开它并验证#define是否存在。它应该是这样的:#define CSIDL_COMMON_APPDATA 0x0023我做到了,这是shlobj.h中的行读到的“#define CSIDL_COMMON_APPDATA 35”上面是否有一个条件定义,例如#if(NTDDI_VERSION>=NTDDI_VISTA)?你认为这是个好主意吗?这不会妨碍其他功能吗?在您更正您对CSIDL_COMMON_APPDATA定义的评论之前,我发布了这个答案。尝试将shlobj.h include移到CPP文件的顶部,看看是否有帮助。