我有一个老式的 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 编译的,并以通常的方式链接到我的应用程序。图标出现了,所以我确信这一点至少是正确的。
我还需要做些什么才能使清单得到遵守吗?
已解决:我在资源文件中丢失了这一行:
#include "winuser.h"
没有它,您就不会得到任何诊断或指示它不起作用;你只是没有得到清单。叹。
我在这里使用清单提取工具解决了这个问题:http://weblogs.asp.net/kennykerr/archive/2007/07/10/manifest-view-1-0.aspx http://weblogs.asp.net/kennykerr/archive/2007/07/10/manifest-view-1-0.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)