PCB_问题记录_QT(1)引用gdiplus.h、Gdiplus.lib 报错

本文解决在编译使用GDI+库的C++项目时遇到的多个编译错误,涉及类型说明缺失、语法错误及未声明的标识符等问题。通过引入必要的头文件和命名空间,成功解决了GdiplusEnums.h中的编译问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(33): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(33): error C2146: 语法错误: 缺少“;”(在标识符“GraphicsState”的前面) (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(534): error C2433: “BOOL”: 不允许在数据声明中使用“inline” (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(534): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(534): error C2146: 语法错误: 缺少“;”(在标识符“ObjectTypeIsValid”的前面) (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(537): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(560): error C2065: “META_SETBKCOLOR”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(560): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(561): error C2065: “META_SETBKMODE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(561): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(562): error C2065: “META_SETMAPMODE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(562): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(563): error C2065: “META_SETROP2”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(563): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(564): error C2065: “META_SETRELABS”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(564): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(565): error C2065: “META_SETPOLYFILLMODE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(565): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(566): error C2065: “META_SETSTRETCHBLTMODE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(566): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(567): error C2065: “META_SETTEXTCHAREXTRA”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(567): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(568): error C2065: “META_SETTEXTCOLOR”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(568): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(569): error C2065: “META_SETTEXTJUSTIFICATION”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(569): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(570): error C2065: “META_SETWINDOWORG”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(570): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(571): error C2065: “META_SETWINDOWEXT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(571): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(572): error C2065: “META_SETVIEWPORTORG”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(572): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(573): error C2065: “META_SETVIEWPORTEXT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(573): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(574): error C2065: “META_OFFSETWINDOWORG”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(574): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(575): error C2065: “META_SCALEWINDOWEXT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(575): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(576): error C2065: “META_OFFSETVIEWPORTORG”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(576): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(577): error C2065: “META_SCALEVIEWPORTEXT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(577): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(578): error C2065: “META_LINETO”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(578): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(579): error C2065: “META_MOVETO”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(579): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(580): error C2065: “META_EXCLUDECLIPRECT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(580): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(581): error C2065: “META_INTERSECTCLIPRECT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(581): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(582): error C2065: “META_ARC”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(582): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(583): error C2065: “META_ELLIPSE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(583): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(584): error C2065: “META_FLOODFILL”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(584): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(585): error C2065: “META_PIE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(585): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(586): error C2065: “META_RECTANGLE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(586): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(587): error C2065: “META_ROUNDRECT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(587): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(588): error C2065: “META_PATBLT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(588): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(589): error C2065: “META_SAVEDC”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(589): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(590): error C2065: “META_SETPIXEL”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(590): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(591): error C2065: “META_OFFSETCLIPRGN”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(591): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(592): error C2065: “META_TEXTOUT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(592): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(593): error C2065: “META_BITBLT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(593): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(594): error C2065: “META_STRETCHBLT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(594): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(595): error C2065: “META_POLYGON”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(595): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(596): error C2065: “META_POLYLINE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(596): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(597): error C2065: “META_ESCAPE”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(597): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(598): error C2065: “META_RESTOREDC”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(598): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(599): error C2065: “META_FILLREGION”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(599): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(600): error C2065: “META_FRAMEREGION”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(600): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(601): error C2065: “META_INVERTREGION”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(601): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(602): error C2065: “META_PAINTREGION”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(602): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(603): error C2065: “META_SELECTCLIPREGION”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(603): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(604): error C2065: “META_SELECTOBJECT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(604): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(605): error C2065: “META_SETTEXTALIGN”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(605): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(607): error C2065: “META_CHORD”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(607): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(608): error C2065: “META_SETMAPPERFLAGS”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(608): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(609): error C2065: “META_EXTTEXTOUT”: 未声明的标识符 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(609): error C2056: 非法表达式 (编译源文件 CommonFiles\RawImageEncoder.cpp)
1>c:\program files (x86)\windows kits\8.1\include\um\GdiplusEnums.h(609): fatal error C1003: 错误计数超过 100;正在停止编译 (编译源文件)

**

解决办法:

**
添加以下头文件:

#include <comdef.h>
#include <gdiplus.h>
using namespace Gdiplus;
#pragma  comment(lib, "gdiplus.lib")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值