如何更改 premake VS C++ 项目中的 dpi 清单设置?

How can I change dpi manifest settings in a premake VS C++ project?

目前,我调用 SetProcessDPIAware() 但 the docs recommend 使用清单:

We recommended that you specify the default process DPI awareness via a manifest setting. While specifying the default via API is supported, it is not recommended.

此外,我发现在某些机器上调用 SetProcessDPIAware() 会导致 window 标题消失并重新出现,从而导致 window 向下移动。我试图获得一个持久的 window 位置,这种闪烁使我的 window 在重复运行后从屏幕上滑下。

如何在 Visual Studio 的清单中设置 dpi 设置?我如何让 premake 使用该设置生成 vcxproj?

How to run correctly with a high DPI setting? 描述了我正在寻找的一些答案,但 C# 的菜单不同。

要在 Visual Studio 中更改:

  1. 打开启动项目的属性
  2. 清单工具 > 输入和输出
  3. 将 DPI 感知更改为每显示器高 DPI 感知

要在 premake 中更改,请设置 dpiawareness inside your project 块:

project( "ProjectName" )
    kind "WindowedApp"

    dpiawareness "HighPerMonitor"