Я создал базовое визуальное приложение, и оно использует ресурс OCX для офисных документов. Теперь, когда я использую приложение, все вроде работает нормально, но когда я выхожу из приложения, оно зависает с ошибкой нарушения прав доступа (большую часть времени). Это происходит ТОЛЬКО, когда я пытаюсь закрыть все приложение.

Я попытался отладить его, хотя он показывает только окно дизассемблирования, остановленное на инструкции mov eax,dword ptr [edi+4], и стек вызовов, указывающий на этот конкретный OCX.

Поскольку конкретный OCX создается сторонним разработчиком, поэтому я не могу его изменить, есть ли способ хотя бы обработать это исключение? Или какие-то другие мысли по этому поводу?

Большое спасибо!

0
mmystery 1 Фев 2013 в 03:29
Нет, вы не можете справиться с нарушениями доступа. Обратитесь к разработчику за поддержкой.
 – 
Hans Passant
1 Фев 2013 в 04:41

1 ответ

Лучший ответ

Невозможно обработать ошибку, которая звучит как ошибка в OCX, но вы можете предотвратить ее. Убедитесь, что у вас установлена ​​последняя версия. Убедитесь, что вам нечего выбрасывать или закрывать. При выходе из приложения убедитесь, что все функции OCX завершены. В крайнем случае, вы можете попробовать изменить или закомментировать некоторые вызовы функций в OCX, чтобы увидеть, имеет ли что-нибудь значение.

Сейчас самое время начать искать альтернативу OCX.

0
xpda 1 Фев 2013 в 10:54
Спасибо за ответ! Поскольку я новичок, есть ли централизованная точка для контроля, все ли экземпляры, связанные с этим конкретным ocx, активны или нет?
 – 
mmystery
2 Фев 2013 в 21:19
Не знаю, есть или нет.
 – 
xpda
2 Фев 2013 в 21:21