Я пишу программу на C # .NET 3.5, в которой используется последняя версия MediaInfoLib Dll .
Похоже, это вызывает исключение для некоторых файлов.
Я хочу перехватить эти исключения и убедиться, что моя программа продолжает работать,
но по какой-то причине я не могу поймать его с помощью простого оператора try / catch.
Методы PInvoke:
[DllImport("MediaInfo.dll")]
private static extern IntPtr MediaInfo_New();
[DllImport("MediaInfo.dll")]
private static extern IntPtr MediaInfo_Open(IntPtr Handle,MarshalAs(UnmanagedType.LPWStr)] string FileName);
Использование:
Handle = MediaInfo_New();
try{
MediaInfo_Open(Handle, FileName)
} catch { }
Вызов MediaInfo_Open (Handle, FileName) может вызвать исключение.
Вместо того, чтобы отловить ошибку с помощью оператора try / catch, моя программа завершает работу и "vshost32-clr2.exe" дает сбой. (Он также вылетает как сборка выпуска без подключенного отладчика)
После поиска в Интернете я нашел человека, который предложил установить флажок «Включить отладку неуправляемого кода», в результате чего моя программа завершилась без сбоя vshost32-clr2.exe.
Есть идеи, как я могу поймать исключение?