У меня есть приложение WinForms, в котором я хочу предоставить возможность редактирования HTML. Поэтому я перевел HTML Writer Лутца Редера из C # в VB.NET и преобразовал его из оконной формы в пользовательский элемент управления, который теперь размещается в дочерней MDI-форме.
Все работает нормально, пока я не закрою родительский MDI, и в этом случае происходит сбой, и я не могу перехватить исключение.
Я выделил элемент управления редактором в маленькое ванильное приложение WinForms, которое больше ничего не делает, и убедился, что проблема все еще возникает.
Я также включил отладку неуправляемого кода (я использую VS2010, компилирую для x86 и Framework 3.5), и все, что я получаю, это:
Windows has triggered a breakpoint in HtmlEditorMdi.exe.
This may be due to a corruption of the heap, which indicates a bug in HtmlEditorMdi.exe or any of the DLLs it has loaded.
This may also be due to the user pressing F12 while HtmlEditorMdi.exe has focus.
The output window may have more diagnostic information.
Единственное, что я заметил, это то, что если я оставлю длинный интервал после открытия формы, содержащей редактор, она не вылетит.
Что я действительно ценю, так это некоторые идеи о том, как искать эту проблему. Может быть, конечно, что я сделал ошибку в преобразовании C # в VB, но я изо всех сил пытаюсь узнать, где искать.
Редактировать :
Я запустил приложение с подключенным отладчиком, и он не дал мне ничего полезного.
Все, что я получаю, это сообщение Windows «Приложение перестало работать», с этим в деталях проблемы:
Problem signature:
Problem Event Name: APPCRASH
Application Name: HtmlEditorMdi.exe
Application Version: 1.0.0.0
Application Timestamp: 4cfb74c7
Fault Module Name: mscorwks.dll
Fault Module Version: 2.0.50727.4952
Fault Module Timestamp: 4bebd49a
Exception Code: c0000005
Exception Offset: 000022b5
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 2057
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Я вижу, что это нарушение прав доступа, но даже если я уйду Отладка> Исключения> Исключения Win32 и отметка c0000005 , я ничего не получу, когда он сломается - просто «источник недоступен».