“应用程序无法正确启动(0xc000007b)。单击确定关闭应用程序。”
Posted
技术标签:
【中文标题】“应用程序无法正确启动(0xc000007b)。单击确定关闭应用程序。”【英文标题】:"The application was unable to start correctly (0xc000007b). Click ok to close the application." 【发布时间】:2014-08-31 20:13:11 【问题描述】:当我尝试打开 Visual Studio 2010 时,我在运行 Windows Server 2008 R2 Enterprise SP1 的 VPS 上收到标题中的错误消息。即使在我安装了 SQL Server 2012 和 VS 2013 之后,一开始也一切正常。
在尝试解决此问题时,我发现其他遇到此问题的人指出 SysWOW64 文件夹中的 32 位版本的 msvcp100、msvcp100d、msvcr100、msvcr100d 和 msvcr100_clr0400 DLL 以某种方式被 64 位版本覆盖。所以,我下载了 32 位版本并没有运气更换它们。我还删除了 system32 文件夹中的版本。这也不起作用,所以我把原件放回去了。
我也完全卸载了 Visual Studio 2010,然后我重新安装了 VS 2010 Shell Integrated; Visual Studio 仍然无法启动并给出同样的错误。
谁能帮我解决这个问题?如果是 DLL 的问题,有没有人知道有什么工具可以帮助我准确缩小导致问题的 DLL 的范围?
任何帮助将不胜感激。谢谢!!!
【问题讨论】:
【参考方案1】:使用 Dependency Walker 工具并找到一篇提供有关如何使用该工具的一些信息的帖子,我发现我有 ATL100.DLL 的 64 位版本而不是 32 位版本。该文件之前丢失了,我在不知不觉中下载并替换为 64 位版本。
【讨论】:
我厌倦了听“Dependency Walker”...我使用这个程序,这个程序告诉我:我需要“API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1 -1.DLL”,然后我转到 c:\windows\system32/syswow 并存在。这个解决方案不适合我 @delive 只是因为 Dependency Walker 对您不起作用并且您不知道如何解决它,不要使其无效并抱怨正确答案共享有关如何解决问题的良好信息。过去我自己使用过dependency walker,它是一个非常有用的工具。【参考方案2】:我已经四处寻找有关此问题的详细信息,但没有发现任何结论。来自 Microsoft 支持技术人员的一篇帖子指出:
“从你的错误0xc000007b我发现这个错误意味着这个: "STATUS_INVALID_IMAGE_FORMAT" "。
错误消息可能是指文件图像 - 很可能是 MS VS SDK DLL 之一。确切的文件名应该在 Windows 事件日志 - 应用程序部分。如果不是,它们可能在日志文件中(在您的 %temp% 区域中)。
假设您找不到文件名:您是否尝试过修复所有 VS 2010 SDK?如果在安装 MS VS 后文件已更新(通过 MS 安装程序),则不会通过安装回滚 - 即使它是无效的。如果您卸载它也不会被删除,因为另一个应用程序安装/更新了它。 您需要通过修复(在“程序和功能”中)强制执行此操作。
更新:MS Repair Tool for .NET Components - 不确定是 .NET 库还是扫描 VC++/VC#/等。我仍在为其他 MS 组件寻找类似的工具。
另外:如果这些都没有帮助,请尝试以下方法: -强制发生错误,并让进程运行(VS 2010)并显示错误消息 - 拉起 Process Explorer(来自 Microsoft - sysinternals.com 的实用程序)并选择该进程 -启用下部窗格的 DLL 视图 - 浏览 DLL,其中应该有一个奇怪的日期,也许在一个奇怪的位置(比如在 VS 2010 文件夹中,而不是 System32。) -关闭 VS 2010(及其错误消息) - 将任何不在 system32/syswow64 下的 DLL 移动到临时位置(不要忘记你在哪里得到它们!) -再次启动 VS 2010
最新内容: 试试这个以获得更好的日志记录 - 像这样启动 VS2010: devenv.exe /日志
日志放在这里: %APPDATA%\Roaming\Microsoft\VisualStudio\\ActivityLog.xml
[source web page]2 中有更多 devenv.exe 开关。
【讨论】:
是的,我已经修复了VS 2010的安装。 我有一个来自 Dependency Walker 工具的列表。有谁知道如何阅读清单? 还尝试了您建议的 MS 修复工具,但没有成功。感谢您的建议。 我也尝试了 Process Explorer。下部窗口中显示了大约 21 个 DLL,除了 System32 文件夹中的这个 locale.nls 文件外,没有任何可疑之处。显示的一些 DLL 是 32 位的,有些是 64 位的。这正常吗?我认为他们应该是其中之一。我期待 32 位,因为 VS 2010 是 32 位(用完“程序文件(x86)”。对吗? 好的,我尝试发布回复,但迷你 Markdown 中不存在任何格式。新行 = 换行。真的很烦人。无论如何,看看我的帖子。我想我有一个解决方案。【参考方案3】:我通过将平台从 properties >> configuration manager 更改为 win64,并将 Additional Library Directories 更改为 解决了这个问题x64。
【讨论】:
【参考方案4】:对我来说,我遇到了同样的问题,问题是由于 Visual Studio 所需的各种系统 dll 的 32/64 位不匹配。不知何故,它需要的 dll 被它无法加载的 64 位版本所取代。我卸载了 x64 vc++2013 redistribute 并安装了 x86,它开始工作了。
【讨论】:
以上是关于“应用程序无法正确启动(0xc000007b)。单击确定关闭应用程序。”的主要内容,如果未能解决你的问题,请参考以下文章