2012-06-24 53 views
2

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

编辑:问题解决和关闭,以供将来参考:

两个32/64位的工作表现,加上它通过项目选项/应用/运行时主题/自定义Manifest->挑.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> 
+0

相关(http://stackoverflow.com/questions/10492037/the-application-was-unable-to-start-correctly-0xc000007b) – Hendra

回答

3

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

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

+0

该应用程序工作正常,虽然在64位没有清单。 – hikari

+0

Dependency Walker告诉你什么? –

+0

现在工作,不知何故资源编译器(brcc32)搞砸了一些东西。如果我通过项目选项/应用程序/运行时主题添加清单 - >自定义清单并手动选择清单文件,它工作正常。 – hikari