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

MinGW-w64-UCRT中仅存shellscalingapi.h时,如何获取对应库?

解决SetProcessDpiAwareness未定义引用问题

你遇到的不是缺失库文件,而是编译时未链接到包含该函数的系统库。SetProcessDpiAwareness属于Windows的shell32库,MinGW-w64已自带对应的导入库,只需在编译时显式指定链接它即可。

具体解决步骤

  • 直接用命令行编译:添加链接参数-lshell32,完整命令示例:
    g++ your_code.cpp -o your_program.exe -lshell32
    
  • VS Code配置编译任务:在.vscode/tasks.json的args数组中加入"-lshell32",示例配置如下:
    {
        "version": "2.0.0",
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: g++.exe 生成活动文件",
                "command": "C:/msys64/ucrt64/bin/g++.exe",
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe",
                    "-lshell32" // 新增该参数
                ],
                "options": {
                    "cwd": "${fileDirname}"
                },
                "problemMatcher": ["$gcc"],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "detail": "编译器: C:/msys64/ucrt64/bin/g++.exe"
            }
        ]
    }
    

补充说明

MinGW-w64的ucrt64环境中,shell32的导入库是libshell32.a,位于C:\msys64\ucrt64\lib目录下。你之前递归搜索没找到,大概率是搜索范围或文件名匹配的问题,但只要添加-lshell32参数,编译器会自动定位并链接该库。

内容的提问来源于stack exchange,提问作者Tech of the Absence

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:00:12