应用程序不再工作 - 任何想法

时间:2022-03-16 01:51:00

I am out of ideas as to why my app has suddenly stopped working - perhaps the collective mind of the SO community can help...
Background:
I have a large application that has been working up until recently. Now when ever I try and run it I get the error "The application failed to initialize properly (0xc0000005)"
This happens before the app gets to _tmain(). It happens in both release and debug builds. I have tried cleaning and rebuilding the projects and rebooted my PC.

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

The call stack just shows entries for kernel32.dll and ntdll.dll
The output window shows:

调用堆栈只显示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.

Any ideas?

Edit:
Okay - found the problem - it was dll related
my app uses shared dlls a.dll and b.dll (and others)
a.dll hardly every changes (and uses b.dll)
b.dll was changed by another developer this morning and a.dll was not rebuilt.

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

Depends.exe did not show any missing dlls, however a.dll no longer works because of the change to b.dll

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

5 个解决方案

#1


There's probably some .dll file that is required for the application, but it's not found, or access to it is not allowed.

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

Are you using some dll's, or maybe some runtime library of any kind?

您使用的是某些dll,还是某些运行时库?

#2


This link seems to describe three issues as possibile causes:

这个链接似乎描述了三个可能的原因:

  • Data Execution Prevention
  • 数据执行保护

  • Driver or system update
  • 驱动程序或系统更新

  • Faulty Ram

details here: http://www.updatexp.com/0xC0000005.html

详情请访问:http://www.updatexp.com/0xC0000005.html

let us know if you find the reason

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

#3


Check permissions?

#4


Maybe an windows update messed with the system.

也许Windows更新搞砸了系统。

#5


Have you perhaps used SysInternals suite to examine what's happening? This would help you pinpoint any failure for instance if it's accessing a file, DLL or a registry entry and access is denied.

您是否使用过SysInternals套件来检查发生了什么?如果它访问文件,DLL或注册表项并且访问被拒绝,这将帮助您查明任何失败。

Does your program work fine if you install it elsewhere? (another computer) That might help isolate the issue.

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

--You could check are the event log (application, system, etc) to see if anything is getting logged about the problem.

- 你可以检查事件日志(应用程序,系统等),看看是否有任何关于问题的记录。

--Another thing... Since you updated Tortoise, perhaps it uses a DLL your app also uses. You should check to see if any DLL versions have changed. You could uninstall that newer version of Tortoise. Or more drastic, try a registry restore. (http://support.microsoft.com/kb/322756) Or if you use Ghost/Acronis restore to an earlier image of your OS.

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

Lastly I'd recommend trying to be very specific at finding out what is wrong. I mentioned some drastic measures in fixing the problem, but hopefully you can specifically (i.e. DLL ver x causes the issue) narrow it down. Otherwise, It would stink for a client or user of your application to run into the same thing.

最后,我建议尝试非常具体地找出问题所在。我在解决这个问题时提到了一些激烈的措施,但希望你可以专门(即DLL ver x导致问题)缩小范围。否则,应用程序的客户端或用户会遇到同样的问题。

#1


There's probably some .dll file that is required for the application, but it's not found, or access to it is not allowed.

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

Are you using some dll's, or maybe some runtime library of any kind?

您使用的是某些dll,还是某些运行时库?

#2


This link seems to describe three issues as possibile causes:

这个链接似乎描述了三个可能的原因:

  • Data Execution Prevention
  • 数据执行保护

  • Driver or system update
  • 驱动程序或系统更新

  • Faulty Ram

details here: http://www.updatexp.com/0xC0000005.html

详情请访问:http://www.updatexp.com/0xC0000005.html

let us know if you find the reason

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

#3


Check permissions?

#4


Maybe an windows update messed with the system.

也许Windows更新搞砸了系统。

#5


Have you perhaps used SysInternals suite to examine what's happening? This would help you pinpoint any failure for instance if it's accessing a file, DLL or a registry entry and access is denied.

您是否使用过SysInternals套件来检查发生了什么?如果它访问文件,DLL或注册表项并且访问被拒绝,这将帮助您查明任何失败。

Does your program work fine if you install it elsewhere? (another computer) That might help isolate the issue.

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

--You could check are the event log (application, system, etc) to see if anything is getting logged about the problem.

- 你可以检查事件日志(应用程序,系统等),看看是否有任何关于问题的记录。

--Another thing... Since you updated Tortoise, perhaps it uses a DLL your app also uses. You should check to see if any DLL versions have changed. You could uninstall that newer version of Tortoise. Or more drastic, try a registry restore. (http://support.microsoft.com/kb/322756) Or if you use Ghost/Acronis restore to an earlier image of your OS.

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

Lastly I'd recommend trying to be very specific at finding out what is wrong. I mentioned some drastic measures in fixing the problem, but hopefully you can specifically (i.e. DLL ver x causes the issue) narrow it down. Otherwise, It would stink for a client or user of your application to run into the same thing.

最后,我建议尝试非常具体地找出问题所在。我在解决这个问题时提到了一些激烈的措施,但希望你可以专门(即DLL ver x导致问题)缩小范围。否则,应用程序的客户端或用户会遇到同样的问题。