CS2061 语法错误在 commoncontrols.h.
CS2061 syntax error in commoncontrols.h
我最近开始写C++,我决定写一个Qt程序作为介绍,因为我已经知道很多函数名称等。我有一个文件,它使用一些 win32 API 获取巨型图标。要使用它,我有以下内容包括:
#include <commoncontrols.h>
#include <shellapi.h>
#include <CommCtrl.h>
//other include statements for Qt
我不断收到错误
C:\Program Files (x86(\Windows Kits\8.1\Include\um\commoncontrols.h:198:错误: C2061:语法错误:标识符"IMAGELISTDRAWPARAMS">
和
C:\Program Files (x86(\Windows Kits\8.1\Include\um\commoncontrols.h:212: 错误: C2061: 语法错误: 标识符"IMAGEINFO">
错误怎么会出现在 commoncontrols.h 中?据我了解,编译器找不到对那些struct
的引用,因为 CommCtrl 包含在公共控制之后。所以我颠倒了他们的包含位置,认为这可以解决问题,但这导致了 127 个其他错误,所以这似乎不是正确的方向。我在Qt 5.4.1中使用Qt creator,我在Windows 8.1上,所以我正在使用Windows SDK。该套件是x64,因为我在VS 2013中使用MSVC x64编译器。
我做错了什么,为什么错了?
您有一个循环依赖问题。您没有提供有关其他头文件的太多信息。例;
标头A.h
可能取决于标头B.h
,标头B.h
取决于标头A.h
。您主要通过将标头B.h
中的#include "A.h"
替换为标头A.h
的前向声明来解决此问题; class A
在标头B.h
中,反之亦然。