0

有问题的应用程序同时使用本机代码和托管代码。托管代码仅提供 UI 层,同时它与执行大量操作的本机 dll 链接。本机 dll 与其他一些静态 dll 链接。现在的问题是,当我运行应用程序时,它会不确定地崩溃。当我在托管代码调试下调试应用程序时,它显示本机代码中的特定函数引发了“SEH”异常。堆栈跟踪仅显示当前函数。我在 SEH 异常中得到的错误代码是 EFAIL。但是,该应用程序每次在本机调试器下都运行良好。引发 SEH 异常的函数是单线程的。它不使用可以在任何其他线程中访问的任何资源。这种行为的可能原因是什么?我应该如何在本机代码中检测异常的来源。

我正在使用视觉工作室 2012。

4

1 回答 1

0

你在使用 DirectX 吗?当 DeviceContext 同时从多个线程中使用时会发生 SEH 异常,因为 DeviceContext 不是线程安全的。

于 2013-10-11T09:00:28.757 回答