0

我不知道为什么我的应用程序突然停止工作 - 也许 SO 社区的集体思想可以提供帮助...
背景:
我有一个大型应用程序直到最近才开始工作。现在,当我尝试运行它时,我收到错误“应用程序无法正确初始化(0xc0000005)”
这发生应用程序到达_tmain(). 它发生在发布和调试版本中。我尝试清理和重建项目并重新启动我的电脑。

调用堆栈仅显示 kernel32.dll 和 ntdll.dll
的条目输出窗口显示:

a.exe 中 0x00532c13 处的第一次机会异常:0xC0000005:访问冲突读取位置 0xabababdb。
a.exe 中 0x7c964ed1 处的第一次机会异常:0xC0000005:访问冲突。
a.exe 中 0x7c964ed1 处的未处理异常:0xC0000005:访问冲突。

有任何想法吗?

编辑:
好的 - 发现问题 - 它dll 有关
我的应用程序使用共享 dll a.dll 和 b.dll(和其他)
a.dll 几乎所有更改(并使用 b.dll
b.dll 被另一个开发人员更改早上和 a.dll 没有重建。

Depends.exe 没有显示任何丢失的 dll,但是由于对 b.dll 的更改,a.dll 不再起作用

4

5 回答 5

2

该链接似乎将三个问题描述为可能的原因:

  • 数据执行保护
  • 驱动程序或系统更新
  • 有故障的公羊

详情在这里:http ://www.updatexp.com/0xC0000005.html

如果您找到原因,请告诉我们

于 2009-01-08T15:42:28.273 回答
1

检查权限?

于 2009-01-08T15:34:41.347 回答
1

可能是 Windows 更新弄乱了系统。

于 2009-01-08T15:36:06.930 回答
1

应用程序可能需要一些 .dll 文件,但没有找到,或者不允许访问它。

您是否使用了一些 dll,或者任何类型的运行时库?

于 2009-01-08T15:39:37.127 回答
1

您是否使用过 SysInternals 套件来检查正在发生的事情?这将帮助您查明任何故障,例如,如果它正在访问文件、DLL 或注册表项并且访问被拒绝。

如果您将其安装在其他地方,您的程序是否可以正常工作?(另一台计算机)这可能有助于隔离问题。

--您可以检查事件日志(应用程序、系统等)以查看是否记录了有关该问题的任何内容。

--另一件事...自从您更新了 Tortoise,也许它使用了您的应用程序也使用的 DLL。您应该检查是否有任何 DLL 版本已更改。您可以卸载较新版本的 Tortoise。或者更激烈,尝试注册表还原。( http://support.microsoft.com/kb/322756 ) 或者,如果您使用 Ghost/Acronis 还原到操作系统的早期映像。

最后,我建议您尝试非常具体地找出问题所在。我提到了一些解决问题的严厉措施,但希望你能具体地(即 DLL ver x 导致问题)缩小范围。否则,您的应用程序的客户端或用户遇到同样的事情会很糟糕。

于 2009-01-08T15:55:34.037 回答