Windows 在mingw应用程序中忽略清单

Windows 在mingw应用程序中忽略清单,windows,manifest,uac,Windows,Manifest,Uac,我有一个老式的Windows GDI应用程序,是用C编写的,它是用Mingw工具链编译的 我的一些用户一直在抱怨WindowsVista和Windows7的虚拟存储,其中写入应用程序本不应该访问的目录的文件被抽走并存储在其他地方。他们说这让他们感到困惑,他们更愿意犯错误。根据微软的文档,防止这种情况发生的方法是添加一个应用程序清单 不幸的是,这似乎没有任何作用 我的舱单是: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

我有一个老式的Windows GDI应用程序,是用C编写的,它是用Mingw工具链编译的

我的一些用户一直在抱怨WindowsVista和Windows7的虚拟存储,其中写入应用程序本不应该访问的目录的文件被抽走并存储在其他地方。他们说这让他们感到困惑,他们更愿意犯错误。根据微软的文档,防止这种情况发生的方法是添加一个应用程序清单

不幸的是,这似乎没有任何作用

我的舱单是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <description>WordGrinder</description>
  <assemblyIdentity version="1.0.0.0" name="WordGrinder"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
       </security>
  </trustInfo>
</assembly>
(正如您所见,这并不复杂。)资源文件是用windres编译的,并以通常的方式链接到我的应用程序。图标出现了,所以我相信这一点,至少,是正确的


我还需要做些什么才能兑现清单?

已解决:我在资源文件中缺少这一行:

#include "winuser.h"
没有它,你就不会得到任何诊断或它不起作用的迹象;你就是没拿到舱单。唉


我在这里使用清单提取工具解决了这个问题:

这个答案值得更多的投票。当我决定尝试Google并登陆这里时,我正在关注MSDN文档,了解如何使用VisualStudio嵌入UAC清单,并试图找出如何使其适应MingW32编译器。
#include "winuser.h"