我不知道为什么我的应用程序突然停止工作 - 也许SO社区的集体思想可以帮助...
背景:
我有一个大型应用程序,直到最近才开始工作。现在,当我尝试运行它时,我收到错误“应用程序未能正确初始化(0xc0000005)”
在应用程序到达_tmain()
之前会发生这种情况。它发生在发布和调试版本中。我已经尝试清理和重建项目并重新启动我的电脑。
调用堆栈只显示kernel32.dll和ntdll.dll的条目 输出窗口显示:
First-chance exception at 0x00532c13 in a.exe: 0xC0000005: Access violation reading location 0xabababdb. First-chance exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation. Unhandled exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation.
有什么想法吗?
编辑:
好的 - 发现了问题 - 它 dll相关的
我的应用程序使用共享dll a.dll和b.dll(以及其他)
a.dll几乎不会每次更改(并使用b.dll )
今天早上另一位开发人员更改了b.dll,并且没有重建a.dll。
Depends.exe没有显示任何丢失的dll,但是由于b.dll的更改,a.dll不再有效
答案 0 :(得分:2)
这个链接似乎描述了三个可能的原因:
此处的详细信息:http://www.updatexp.com/0xC0000005.html
如果您找到原因,请告诉我们
答案 1 :(得分:1)
检查权限?
答案 2 :(得分:1)
可能是Windows更新与系统混乱。
答案 3 :(得分:1)
应用程序可能需要一些.dll文件,但是找不到它,或者不允许访问它。
您使用的是某些dll,还是某种类型的运行时库?
答案 4 :(得分:1)
您是否使用过SysInternals套件来检查发生了什么?如果它访问文件,DLL或注册表项并且访问被拒绝,这将帮助您查明任何失败。
如果您将程序安装在其他位置,您的程序是否正常工作? (另一台计算机)这可能有助于隔离问题。
- 您可以检查事件日志(应用程序,系统等)以查看是否有任何关于该问题的记录。
- 另一件事......自从你更新了Tortoise,也许它使用了你的应用程序也使用的DLL。您应该检查是否有任何DLL版本已更改。您可以卸载较新版本的Tortoise。或者更激烈,尝试注册表恢复。 (http://support.microsoft.com/kb/322756)或者如果您使用Ghost / Acronis还原到操作系统的早期映像。
最后,我建议尝试非常具体地找出问题所在。我在解决问题时提到了一些激烈的措施,但希望你可以专门(即DLL ver x导致问题)缩小范围。否则,应用程序的客户端或用户会遇到同样的问题。