我有一个使用afxcmn header 的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 header

最佳答案

是的,PLVGROUP是在commctrl.h中定义的,但是取决于WINVER
#if (NTDDI_VERSION >= NTDDI_WINXP)
这意味着WINVER> = 501,请参阅:

错误说明:MFC不支持小于0x0501的WINVER。请在项目属性或预编译的 header 中更改WINVER的定义。

所以我不得不改变我的stdafx.h //#define WINVER 0x0500 #define WINVER NTDDI_WINXP //0x05010000

10-05 23:44