我有一个使用afxcmn标头的Visual Studio 2015项目,并且有很多“未定义”错误。
我在文档中读到了这些数据类型包含在commctrl.h中,它已作为外部依赖项包含在Visual Studio项目中。
// Adds a group to the control.
AFX_ANSI_DEPRECATED int InsertGroup(_In_ int index, _In_ PLVGROUP pgrp);
// Sets information about the specified group (by ID) in the control.
AFX_ANSI_DEPRECATED int SetGroupInfo(_In_ int iGroupId, _In_ PLVGROUP pGroup);
// Retrieves information for the specified group in the control.
AFX_ANSI_DEPRECATED int GetGroupInfo(_In_ int iGroupId, _Out_ PLVGROUP pgrp) const;
这是afxcmn.h的一些代码示例,它给出了这些错误。
我不知道是否必须在项目中配置其他内容以包含commctrl标头
答案 0 :(得分:4)
是的,PLVGROUP在commctrl.h中定义,但它取决于WINVER
#if (NTDDI_VERSION >= NTDDI_WINXP)
这意味着WINVER> = 501,请参阅:
error-Direktive:MFC不支持小于0x0501的WINVER。请在项目属性或预编译标题中更改WINVER的定义。
所以我不得不改变我的stdafx.h
//#define WINVER 0x0500
#define WINVER NTDDI_WINXP //0x05010000
答案 1 :(得分:1)
它们是Visual Studio 2015生成的IntelliSense错误。
答案 2 :(得分:0)
我的环境是Windows 10 1903 / VS2017
我不知道为什么,但这为我解决了这个问题:
仅供参考,这是我项目中产生问题的原始stdafx.h:
#define WINVER 0x0603
#define _WIN32_WINNT 0x0603
在“ #pragma一次”下面添加这两行后,问题解决了:
can_drive_car
仅添加第一行仍会产生这些错误。