【发布时间】:2014-02-20 23:16:26
【问题描述】:
我目前正在使用带有专有包装器的 ffmpeg,我需要捕获在转码过程等过程中有时会发生的本机代码异常。
我已经阅读了这些问题/答案:
https://stackoverflow.com/questions/10517199/cant-catch-native-exception-in-managed-code https://stackoverflow.com/questions/150544/can-you-catch-a-native-exception-in-c-sharp-code
但是,它们并没有真正的帮助,因为异常不是在我调用的函数期间发生,而是在一个完全不同的线程中发生,该线程在 ffmpeg 库中并排运行并且由其他组件(如 DirectX)抛出。这在某种程度上是一个真正的问题,因为异常会破坏我的整个应用程序!
非常感谢任何帮助。
【问题讨论】:
-
这不能直接完成。处理本机代码中的异常,并在发生异常时从本机代码返回properdata。在托管代码中,您可以通过检查返回的值/数据来了解是否发生任何异常。
-
@Narendra 异常可能发生在 DirectX 中,正如我在问题中提到的,它是一个专有组件。我无法改变它的任何方法来处理异常。
标签: c# c++ exception ffmpeg native-code