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

已引入<windows.h>和<Psapi.h>仍报错QueryFullProcessImageName未在该作用域声明

编译报错解决方法

原因1:Windows API版本适配宏未正确配置

QueryFullProcessImageName 仅支持 Windows Vista 及以上版本的系统,MinGW 编译器默认的 Windows 适配宏通常设置为兼容 Windows XP 及更早版本,因此头文件不会暴露该函数的声明。
解决方法:在引入windows.h之前,先定义 Windows 版本适配宏,代码示例如下:

// 0x0600 对应 Windows Vista 版本,需写在所有Windows头文件引入之前
#define _WIN32_WINNT 0x0600
#include <windows.h>
#include <Psapi.h>

如果需要适配更高版本的Windows,可以将宏值替换为对应版本号:

  • Windows 7:0x0601
  • Windows 8:0x0602
  • Windows 10/11:0x0A00

原因2:编译时未链接Psapi依赖库

QueryFullProcessImageName属于Psapi模块的导出函数,编译时需要显式链接对应的库。
解决方法:在g++编译命令的末尾添加链接参数-lpsapi,示例命令如下:

# 单步编译运行的场景
g++ -O3 -Wall -o your_program.exe "..\\main.cpp" -lpsapi

# 分步骤编译链接的场景
g++ -O3 -Wall -c -fmessage-length=0 -o main.o "..\\main.cpp" 
g++ -o your_program.exe main.o -lpsapi

完成以上两处修改后即可正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:27:02