【问题标题】:Manifest being ignored in mingw app清单在 mingw 应用程序中被忽略
【发布时间】:2013-12-13 20:52:02
【问题描述】:

我有一个老式的 Windows GDI 应用程序,用 C 语言编写,正在使用 Mingw 工具链进行编译。

我的一些用户一直在抱怨 Windows Vista 和 Windows 7 的虚拟商店,其中写入应用程序不应访问的目录的文件被虹吸掉并存储在其他地方。他们说这让他们感到困惑,他们宁愿出错。根据微软的文档,防止这种情况发生的方法是添加应用程序清单。

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

我的清单是:

<?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>

...引用它的资源文件是:

CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "src/c/arch/win32/manifest.xml"
101 ICON DISCARDABLE "src/c/arch/win32/icon.ico"

(如您所见,并不复杂。)资源文件是用windres编译的,并以通常的方式链接到我的应用程序。图标出现了,所以我相信这点至少是正确的。

我还需要做什么才能让清单得到尊重吗?

【问题讨论】:

    标签: windows manifest uac


    【解决方案1】:

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

    #include "winuser.h"
    

    没有它,您不会得到任何诊断或指示它不起作用;你只是没有得到清单。叹息。

    我在这里使用清单提取工具解决了这个问题:http://weblogs.asp.net/kennykerr/archive/2007/07/10/manifest-view-1-0.aspx

    【讨论】:

    • 这个答案值得更多的支持。当我决定尝试谷歌并登陆这里时,我正在关注如何使用 Visual Studio 嵌入 UAC 清单的 MSDN 文档,并试图弄清楚如何使其适应 MingW32 编译器。 msdn.microsoft.com/en-us/library/bb756929.aspx
    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多