在VS2010中加载dll文件时的第一次机会异常

Posted

技术标签:

【中文标题】在VS2010中加载dll文件时的第一次机会异常【英文标题】:First-chance exception during loading dll files in VS2010 【发布时间】:2013-03-23 02:09:06 【问题描述】:

我在 Visual Studio 2010 中使用 MFC。我正在修改其他人完成的代码。 VS2010 加载了一些文件,但是在加载最后一个 dll 文件时我得到了

第一次机会异常:Microsoft C++ 异常:位于内存位置 0x0014faa0..

我想知道,有没有办法在加载 dll 文件时设置断点?当 VS 加载第 3 方 dll 文件时会发生异常。

【问题讨论】:

【参考方案1】:

如果您根据此博客看到第一次机会的预期可能没问题:

http://blogs.msdn.com/b/davidklinems/archive/2005/07/12/438061.aspx

引用如下:

第一次机会异常是否意味着我的代码存在问题?

First chance exception messages most often do not mean there is a problem in the code. For applications / components which handle exceptions gracefully, first chance exception messages let the developer know that an exceptional situation was encountered and was handled.

这篇文章提供了相关信息 How can I set a breakpoint in referenced code in Visual Studio?

【讨论】:

感谢您提供此信息,但每次调用第 3 方 dll 文件获取信息时也会发生此异常,因此我需要摆脱此异常(如果可能) @rasred2004 你可以尝试开启VS2010中的所有异常处理程序,在“Debug-->Exceptions”下,大部分最初是未选中的,你可能会找到那些与dll相关的并检查它们。 ras red2004,每次调用都会出现异常,没有错。同样,这对于该 DLL 来说可能是正常的。如果 DLL 遇到它没有捕获的异常,它将是第二次机会异常,而不是第一次机会异常。【参考方案2】:

无需担心第三方代码中的第一次机会异常,因为这可能是它们执行的正常部分。如果第三方代码不处理异常,就会变成第二次机会异常,然后你就知道有问题了。

【讨论】:

以上是关于在VS2010中加载dll文件时的第一次机会异常的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio c++ 中创建将在 VB 中加载的 DLL

vs2010运行总是提示:(msvcr90d.dll) 处最可能的异常: 0xC0000005,怎么回事

无法在 WPF 项目中加载 DLL

混合模式程序集是针对版本X构建的,如果没有其他配置信息,则无法在运行时的版本Y中加载

第一次机会异常:RPC 服务器不可用

无法在 c# 项目中加载 cvextern