应用程序无法正确启动 (0xc0000018) - Windows 8 x64

dan*_*n_s 13 windows windows-8

今天我启动了我的电脑,出现了一些类似这样的错误,所以自动运行中的一些程序没有启动:

应用程序无法正确启动 (0xc0000018)。 单击确定关闭应用程序

打开很多程序时出现此错误,我什至无法使用 7zip。我昨天做的唯一一件事就是通过 Steam 安装一个游戏,现在我无法在我的 PC 上使用 70% 的软件(其中大多数在整个程序上都会出现此错误,有些仅在其中的某些模块上出现此错误)。

我刚刚运行了一个SFC /scannnow,结果是:“Windows 资源保护没有发现任何完整性违规”。

这可能是某种病毒或 Steam 搞砸了某些事情吗?我该怎么办?

dan*_*n_s 8

感谢所有建议,经过一些谷歌搜索后,我发现这个解决方案实际上看起来对我有用:

  1. 按 Win+R 并键入 regedit
  2. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\­Microsoft\WindowsNT\CurrentVersion\Windo­­ws
  3. 比搜索APPINIT_DLLS并删除其中的所有内容
  4. 重启


Jim*_*hen 8

恐怕很少有人知道神秘的 0xC0000018 EXE 启动错误的根本原因,因为微软把它弄得很模糊,甚至直到 Windows 10。在阅读 Jeffrey Richter 的MS Windows 4 版编程应用程序时,我碰巧找到了它。

如果 DLL 需要在固定地址(在进程虚拟地址空间中)加载,但无法满足要求,Windows 会断言 0xC0000018 错误。但是没有明显的线索来判断是哪个 DLL 导致了问题。一个简单的谷歌搜索“0xC0000018”只会让你看到很多困惑用户的帖子。

要重现,您可以准备一个包含一个 EXE 和两个 DLL 的解决方案(Visual Studio 术语),并将两个 DLL 设置为具有链接器选项/FIXED /BASE:"0x44440000"并让 EXE 隐式加载这两个 DLL,然后您将在 EXE 启动时看到 0xC0000018 错误。

是的,清除APPINIT_DLLS注册表是您摆脱可能的罪魁祸首的第一个赌注。这些 DLL 将加载到您启动的每个进程中,因此可能会破坏您的生活。

那么如何查明真正的罪魁祸首DLL?也许有一种方法,使用 dumpbin.exe 检查每个 DLLAPPINIT_DLLS或其他可能的自动加载的 DLL(帮助AutoRuns),使用dumpbin -headers. 如果没有.reloc节,则它是一个固定位置的DLL。

  • 更快的方法是使用`procmon`。进程试图加载的最后一个 DLL 必须是触发错误的那个。 (2认同)