最近用FFmpeg處理視頻, 提示「」當代碼嘗試讀取或寫入沒法訪問的內存「」,而後程序退出。已經設置全局異常也沒有捕獲到。app
C#調用非託管方法程序容易奔潰,緣由是非退託管代碼報的異常未能被捕獲到。記錄一下兩種解決方法:code
1、使用配置文件兼容之前代碼視頻
爲了與舊代碼兼容,在app.config添加legacyCorruptedStateExceptionsPolicy
元素。 內存
一樣代碼在.Net2.0下面正常,4.0程序就退出 。get
2、方法添加特性io
方法上面添加這個特性 [System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions] class
try catch就能夠捕捉AccessViolationException異常。配置