通过Visual Studio运行应用程序时出现“访问冲突”的错误。

4
当我在Visual Studio中运行命令行应用程序时,其中一个命令总是失败,并显示以下错误:
The program '[7316] MyProgram.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.

当我调试代码时,在最后一行执行后会出现这种情况。也就是说,应用程序能够正确地执行其功能,但随后崩溃。当我构建项目并在命令行中运行exe文件时,没有错误,并且它可以正常工作。

该项目使用第三方dll,而该dll据我所知又调用了一个C或C++ dll,即一个未使用.Net编写的东西。

我的问题是:如果应用程序在构建后能够正常工作,那么我是否可以忽略此错误?如果不能,可能存在什么潜在问题,我该如何解决?


3
如果不知道访问冲突首先发生的原因,就没有安全的方法来回答那个问题。可能只有在附加调试器时,该dll才会崩溃,但是如果不知道这些情况,没有人可以肯定地回答是或否,只能凭猜测。 - Lasse V. Karlsen
应用程序在构建时运行良好 - 所以您已经进行了测试。因此,您可以忽略它。 - Sinatr
1个回答

2

应用程序能正常工作,我是否可以忽略这个错误?

我不建议忽略这个问题。如果您的应用程序在关闭时失败,那么可能是在销毁对象和将句柄返回给Windows时出现了问题(最可能是后者)。这可能会在生产环境中导致问题。

如果不能忽略,可能会有什么潜在问题,以及如何解决?

正如所说,我认为释放句柄是问题所在。如果您使用一些用C++编写的第三方DLL,则可能存在此问题。尝试设置一些日志并查看异常的堆栈跟踪。这可能会让您知道问题发生的位置。也许这甚至是您可以向DLL供应商报告的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接