gpt4 book ai didi

c++ - "application configuration is incorrect"和 "side-by-side configuration is incorrect"运行 VS2008 64 位调试版本

转载 作者:可可西里 更新时间:2023-11-01 18:29:44 29 4
gpt4 key购买 nike

我正在使用带有 64 位插件的 64 位操作系统 Windows 7 终极机器 VS2008。

我已经在 32 位和 64 位、调试和发布配置中成功构建了我的项目。64 位调试未启动;它给出了错误:

Unable to Start program xxx This application has failed to start because application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more retails see application event log.

我运行了 dependency walker。从可再发行路径 C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\amd64\Microsoft.VC90.DebugCRT我加了Microsoft.VC90.DebugCRT. list msvcm90dmsvcp90dmsvcr90dMicrosoft.VC90.DebugOpenMPvcomp90d.sll在我的解决方案的 bin\debug 文件夹中。

最后 dependency walker 没有留下任何黄色标记(丢失文件),但它仍然给出如下错误:

Error: At least one required implicit or forwarded dependency was not found. Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. Error: Modules with different CPU types were found. Error: The Side-by-Side configuration information in "e:\xyz.EXE" contains errors. The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail (14001).

32 位 list 说:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" **processorArchitecture="x86"** publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>

而 64 位调试 list 具有:

 <dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>

我无法理解的是,为什么调试 32 位构建运行成功?

请帮助我,因为我已经检查了很多问题,但没有找到任何可行的解决方案。

最佳答案

感谢您回答我的问题。我终于解决了它,这是解决方案:-

我的是基于 Qt 的 VC++ 解决方案,该应用程序依赖于一些第 3 方 dll 和库。我的任务是为我在 64 位操作系统中构建 Qt 和第 3 方 dll 和库的应用程序提供 64 位支持。

当我尝试在调试 64 位配置中运行我的应用程序时出现 CRT 错误。即使我将以下 CRT 复制到我的应用程序的 bin 文件夹中,错误仍然存​​在

redist\Debug_NonRedist\amd64\Microsoft.VC90.DebugCRT:

  1. Microsoft.VC90.DebugCRT.manifest
  2. msvcm90d.dll
  3. msvcp90d.dll
  4. msvcr90d.dll

Microsoft.VC90.DebugOpenMP:

  1. vcomp90d.dll

当我将上述 CRT 粘贴到 Qt 和第 3 方库所在的相应 bin 文件夹中时,我能够在调试 64 位模式下成功启动我的应用程序。

关于c++ - "application configuration is incorrect"和 "side-by-side configuration is incorrect"运行 VS2008 64 位调试版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8982996/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com