You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MinGW-w64 GCC编译时GetDpiForWindow()未声明的问题

解决MinGW-w64编译时找不到GetDpiForWindow()的问题

问题原因

GetDpiForWindow() 是Windows 10 1607(周年更新)及以上版本才提供的API,MinGW-w64的头文件默认不会启用这类较新的Windows API声明,必须通过定义特定宏来解锁。而Visual Studio默认已配置了足够高的目标Windows版本,因此编译无问题。

解决方案

有两种方式可以解决这个问题:

1. 在代码中添加宏定义

在包含任何Windows头文件(比如windows.h)之前,添加以下宏定义:

#define _WIN32_WINNT 0x0A00  // 对应Windows 10,若需适配Win11可设为0x0B00
#include <windows.h>

2. 在编译命令中添加宏参数

直接在gcc编译命令里加入-D_WIN32_WINNT=0x0A00,修改后的命令如下:

gcc -x c++ -D_WIN32_WINNT=0x0A00 ./main.h ./main.cpp -o ./app -mwindows -municode -luser32 -lgdi32 -lkernel32

额外注意

如果以上方法仍无效,请检查你的MinGW-w64版本是否过旧——过老的版本可能未包含该API的声明,建议更新到最新稳定版。

内容的提问来源于stack exchange,提问作者thebluetropics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:07:00