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


13

今天,我启动了计算机,并出现了一些类似这样的错误,因此自动运行中的某些程序没有启动:

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

打开许多程序时出现此错误,我什至不能使用7zip。昨天我唯一要做的就是通过Steam安装游戏,现在我无法在PC上使用大约70%的软件(大多数错误在整个程序上出现,部分仅在某些模块上出现)。

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

这可能是某种病毒或Steam弄乱了某些东西吗?我该怎么办?


2
它不是病毒,但是您的注册表仍然损坏。我将使用一个恢复点来解决此问题
Ramhound

不幸的是,我禁用了PC上的
还原点

您可以尝试卸载游戏,每次都可以通过Steam重新安装-也许这有帮助吗?
duDE 2013年

我可以尝试,但是我认为Steam只会删除一些文件,而不能解决我的注册表问题。
dan_s 2013年

2
@Daniele-Steam不会修改注册表。DirectX的安装可能会。您还假设这是Steam事件,没有其他事件。
Ramhound13年

Answers:


8

感谢您的所有建议,经过一番谷歌搜索后,我发现此解决方案实际上对我有用:

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

您可以链接到找到有关此注册表编辑信息的网站吗?它甚至做什么?
卡兰2013年

奇怪的是,我在YouTube视频中找到了这个解决方案...我不知道为什么它搞砸了,或者为什么这解决了我的问题,但是有效。
dan_s 2013年

我最近遇到同样的问题,发现此注册表“修复”提到了几个地方,但是该键在我的系统上已经为空。
戈登

1
我的密钥也为空,并且在尝试运行javaw / java sdk 8时遇到错误。删除了空密钥,再次重新启动,它可以正常工作。谁知道,也许是第三次重启才成功。

这对于Windows 7+操作系统不起作用,因为默认情况下禁用了APPINIT_DLLS机制。
Nikos

8

恐怕很少有人知道神秘的0xC0000018 EXE启动错误的根本原因,因为即使到Windows 10为止,Microsoft都会使它含糊不清。当阅读Jeffrey Richter的MS Windows 4th 编程应用程序时,我碰巧发现了它。

如果DLL需要在固定地址(在进程虚拟地址空间中)加载,但无法满足该要求,则Windows会声明非常0xC0000018错误。但是,没有明显的线索可以确定哪个DLL引起了问题。一个简单的Google搜索“ 0xC0000018”就会弹出大量令人困惑的用户帖子。

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

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

那么如何查明实际的罪魁祸首DLL?也许有一种方法,使用dumpbin.exe来检查其中的每个DLL APPINIT_DLLS或其他可能的自动加载的DLL(在AutoRuns的帮助下),然后使用逐个检查它们dumpbin -headers。如果没有任何.reloc节,则它是固定位置的 DLL。


2
一种更快的方法是使用procmon。进程尝试加载的最后一个DLL必须是触发错误的DLL。
ivan_pozdeev 2015年

1
触发此错误的一种非显而易见的方法是,当可执行文件的数据段非常大时(例如,静态数组)。如果该部分足够大以至于它侵占了某些内核dll的固定地址,c0000018则在可执行文件为32位时会发生。Windows使用64位可执行文件,拒绝以“错误图像”错误加载它们,这非常令人困惑。请注意,错误可能会随着调试/发行版的生成而消失,并且在Windows更新更改系统dll的地址空间布局后意外出现。
安东·泰克

1

我已经通过Steam安装了大约40款游戏,并且没有任何问题,不,我认为Steam没什么不好。尝试使用Windows还原点还原系统:http : //windows.microsoft.com/en-ph/windows-vista/system-restore-frequently-asked-questions

[编辑]也许缺少某些DLL,您可以使用Dependency Walker测试无法启动的程序的依赖性:http : //www.dependencywalker.com/


就像我在上面的评论中说的那样,我禁用了PC上的还原点来保存我的SSD,所以我不能这样做。我什至无法Restore在我的PC上搜索,因为当我按下Windows按钮并尝试在“设置”选项卡中搜索某些内容时,Metro只会冻结。
dan_s 2013年

好吧,就像我上面说过的(如果您喜欢这种方式),您可以尝试卸载游戏,通过Steam您可以每次重新安装它-也许这有帮助吗?
duDE 2013年

@Daniele -如果你甚至无法查看启动屏幕的时候Refresh你的Windows 8安装。这将需要重新安装桌面应用程序。
Ramhound

0

可能与以下MS Update和McAfee Data Loss Prevention端点(DLP端点)相关联。似乎MS更新和McAfee Data Loss Prevention Endpoint之间存在冲突。

请访问以下网站: 安装了Data Loss Prevention Endpoint时,Windows 7上的Microsoft补丁MS15-038 Microsoft安全公告MS15-038-重要


它还将影响explorer.exe和cmd。Windows启动后,与资源管理器相关的程序将提示:“服务器执行失败”。
Mehrdad Nazmdar

也许可以,但是OP没有提到使用McAfee,他的职位只有2岁。他在没有您的补丁的情况下解决了他的问题,而您的补丁是最新的补丁。无论如何,请在参考链接中引用答案的主要部分,因为如果链接页面发生更改,答案可能会失效。
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.