gcc+PulSAR在windows下的DPI awareness方法

步骤一:写一个RC文件,比如dpiware.rc

点击查看代码
#include <windows.h>
1 24 "Theme.xml"

步骤二:写一个Theme.xml文件

点击查看代码
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
 
    <assemblyIdentity
        version="1.0.0.1"
        processorArchitecture="*"
        name="MyAppName.exe"
        type="win32"
    />
    <description>Optional MyDescription for MyAppName.exe</description>
 
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
        <dpiAware>true</dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
 
    <!-- Compatibility section for Program Compatibility Assistant (PCA) -->
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!-- Windows Vista -->
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
            <!-- Windows 7 -->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
            <!-- Windows 8 -->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
            <!-- Windows 8.1 -->
            <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
            <!-- Windows 10 -->
            <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
        </application>
    </compatibility>
 
    <!-- Trustinfo section for User Account Control (UAC) -->
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <!-- level   = "asInvoker"            -->
                <!-- level   = "highestAvailable"     -->
                <!-- level   = "requireAdministrator" -->
                <requestedExecutionLevel
                    level    = "asInvoker"
                    uiAccess = "false"
                />
            </requestedPrivileges>
        </security>
    </trustInfo>
 
    <!-- Dependency section -->
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="*"
                publicKeyToken="6595b64144ccf1df"
                language="*"
            />
        </dependentAssembly>
    </dependency>
 
</assembly>

步骤三:用windres.exe编译.rc为.o文件
windres.exe在codetyphon、msys2的bin、codeblocks、devCpp、lazarus等软件中有。

windres dpiaware.rc -o dpi_rc.o

步骤四:修改.atom-build.yaml文件

点击查看代码
cmd: "gcc"
name: "gcc x64 Compiler"
args:
  - -mwindows
  - -Wall
  - "{FILE_ACTIVE}"
  - "{FILE_ACTIVE_PATH}/dpi_rc.o"
  - -ID:\poseidonFB2511\iup-3.31_Win64_dllw6_lib\include
  - -LD:\poseidonFB2511\iup-3.31_Win64_dllw6_lib
  - -liup
  - -liupimglib
  - -o
  - "{FILE_ACTIVE_PATH}/{FILE_ACTIVE_NAME_BASE} &&"
  - "{FILE_ACTIVE_PATH}/{FILE_ACTIVE_NAME_BASE}"
sh: true,
cwd: "{FILE_ACTIVE_PATH}"
env:
errorMatch:
#  - ^regexp1$
#  - ^regexp2$
warningMatch:

按F9进行build和运行,清晰的DPI awareness界面就链接完成了。
image

posted @ 2026-01-16 17:42  Mongnewer  阅读(1)  评论(0)    收藏  举报