gpt4 book ai didi

C++ WinSDK 头文件编译错误

转载 作者:可可西里 更新时间:2023-11-01 12:00:16 26 4
gpt4 key购买 nike

我正在尝试在 Windows 7 中的 Visual Studio 2010 中编译程序。我在 Windows header shlobj.h 中收到编译错误 C2061: syntax error: identifier 'KNOWN_FOLDER_FLAG'在标记线处:

#if (NTDDI_VERSION >= NTDDI_VISTA)

typedef enum
{
KF_FLAG_DEFAULT = 0x00000000,
KF_FLAG_CREATE = 0x00008000,
KF_FLAG_DONT_VERIFY = 0x00004000,
KF_FLAG_DONT_UNEXPAND = 0x00002000,
KF_FLAG_NO_ALIAS = 0x00001000,
KF_FLAG_INIT = 0x00000800,
KF_FLAG_DEFAULT_PATH = 0x00000400,
KF_FLAG_NOT_PARENT_RELATIVE = 0x00000200,
KF_FLAG_SIMPLE_IDLIST = 0x00000100,
KF_FLAG_ALIAS_ONLY = 0x80000000,
} KNOWN_FOLDER_FLAG;


DEFINE_ENUM_FLAG_OPERATORS(KNOWN_FOLDER_FLAG);

STDAPI SHGetKnownFolderIDList(__in REFKNOWNFOLDERID rfid,
__in DWORD /* KNOWN_FOLDER_FLAG */ dwFlags,
__in_opt HANDLE hToken,
__deref_out PIDLIST_ABSOLUTE *ppidl);

STDAPI SHSetKnownFolderPath(__in REFKNOWNFOLDERID rfid,
__in DWORD /* KNOWN_FOLDER_FLAG */ dwFlags,
__in_opt HANDLE hToken,
__in PCWSTR pszPath);

STDAPI SHGetKnownFolderPath(__in REFKNOWNFOLDERID rfid,
__in DWORD /* KNOWN_FOLDER_FLAG */ dwFlags,
__in_opt HANDLE hToken,
__deref_out PWSTR *ppszPath);

#endif // NTDDI_VISTA

#if (NTDDI_VERSION >= NTDDI_WIN7)

STDAPI SHGetKnownFolderItem(__in REFKNOWNFOLDERID rfid,
__in KNOWN_FOLDER_FLAG flags, <<<ERROR AT THIS LINE
__in_opt HANDLE hToken,
__in REFIID riid,
__deref_out void **ppv);
#endif // NTDDI_WIN7

在我的程序中版本宏定义如下

#define NTDDI_VERSION NTDDI_WINXP

编译不通过的原因是什么?

在我看来,我遇到错误的部分根本不能编译,但它以某种方式编译了。

最佳答案

只有一个合乎逻辑的结论:出于某种原因,编译此 header 时 NTDDI_VERSION 的扩展不是您认为的那样。

尝试通过搜索 #undef NTDDI_VERSION 进行故障排除并重新构建您的项目(如果您使用的是预编译 header ,则可能相关)。

关于C++ WinSDK 头文件编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10738357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com