2

此清单中以管理员身份运行应用程序有什么不正确之处?它适用于 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>
4

1 回答 1

3

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

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

于 2012-06-24T11:40:43.107 回答