将可执行文件移动到其他位置后,将忽略app.exe.manifest设置

时间:2018-03-03 05:10:29

标签: c windows winapi mingw gdi

我使用MinGW构建我的Windows应用程序:

windres app.rc -O coff -o app.res
gcc -w -mwindows -o app.exe app.c  app.res

这是我的app.exe.manifest:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.1.0.0"
    processorArchitecture="x86"
    name="controls"
    type="win32"
/>
<dependency>
    <dependentAssembly>
    <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        processorArchitecture="*"
        publicKeyToken="6595b64144ccf1df"
        language="*"
    />
    </dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"
            />
      </requestedPrivileges>
    </security>
  </trustInfo>
<asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
      <gdiScaling>true</gdiScaling>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>

我这样做是为了启用Windows 10的新GDI扩展。它可以正常工作,直到我将我的可执行文件移动到其他位置。

令人惊讶的是,复制整个目录并没有帮助,因此系统不需要清单或资源文件。这条路似乎在某处硬编码。

我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:0)

原来我的表现很糟糕。它不包含xmlns:asmv3参数

<assembly xmlns="urn:schemas-microsoft-com:asm.v1"  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">