windows - list 在 mingw 应用程序中被忽略

标签 windows manifest uac

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

我的一些用户一直在提示 Windows Vista 和 Windows 7 的虚拟商店,其中写入应用程序不应该访问的目录的文件被抽走并存储在其他地方。他们说这让他们感到困惑,他们宁愿有一个错误。根据 Microsoft 的文档,防止这种情况发生的方法是添加应用程序 list 。

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

我的 list 是:

<?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 编译的,并以通常的方式链接到我的应用程序。图标出现了,所以我相信至少这一点是正确的。

我还需要做些什么才能兑现 list 吗?

最佳答案

已解决:我在资源文件中遗漏了这一行:

#include "winuser.h"

没有它,您将得不到任何诊断或表明它没有工作的迹象;你只是没有得到 list 。叹息。

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

关于windows - list 在 mingw 应用程序中被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20255591/

相关文章:

c# - 从 Main 函数最大化窗口?

c++ - 避免 DLL 版本控制问题

windows - 从 emacs 中使用默认 Windows 应用程序打开文件

android - 将应用程序添加为外部库时不允许显示 list 属性(android)

c# - 处理多个进程的关闭

android - 如何以编程方式读取 Android 中的 wifi 密码

Java 小程序 list - 允许所有 Caller-Allowable-Codebase

c# - 使用 UAC 部署 C# 应用程序

c# - 以管理员身份运行时,如何让 IEnumMoniker.Next 返回名字对象?

c# - UAC 风格提升提示