Delphi清单显示64位的UAC提升

时间:2012-06-24 03:29:54

标签: delphi 64-bit manifest uac elevation

此清单中以管理员身份运行应用程序的错误是什么?它适用于32位,但与64位exec一起使用会在启动时出现错误并关闭:“应用程序无法正确启动(0xc000007b)。单击”确定“关闭应用程序。”

编辑:问题已解决并已关闭,供将来参考:

32/64位的工作清单,通过Project Options / Application / Runtime Themes / Custom Manifest-> pick .manifest文件添加它。由于某种原因,Delphi XE2资源编译器似乎搞得一团糟。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <dependency>
                <dependentAssembly>
                        <assemblyIdentity
                                type="win32"
                                name="Microsoft.Windows.Common-Controls"
                                version="6.0.0.0"
                                processorArchitecture="*"
                                publicKeyToken="6595b64144ccf1df"
                                language="*"
                        />
                </dependentAssembly>
        </dependency>
        <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
                <security>
                        <requestedPrivileges>
                                <requestedExecutionLevel
                                       level="requireAdministrator"
                                       uiAccess="false"/>
                        </requestedPrivileges>
                </security>
        </trustInfo>
</assembly>

1 个答案:

答案 0 :(得分:3)

您的问题与您的清单无关。您可以通过创建一个空应用程序并将清单添加为自定义清单来验证是否存在这种情况。

错误代码0xc000007b是64位进程从32位DLL导入函数时得到的,这是对您的困境最合理的解释。使用Dependency Walker找出32位DLL正在解析哪些导入。

相关问题