Документ PDF в элементе управления webBrowser вызывает ошибку «Не удалось прочитать память» при закрытии приложения - PullRequest
3 голосов
/ 07 мая 2010

Я использую элемент управления webBrowser для открытия PDF-документа в winforms, он работает нормально, но при закрытии приложения я иногда получаю сообщение об ошибке: «Инструкция на« 0x2d864aa2 »ссылается на память на« 0x00000008 ». Память не может быть» читать". Есть ли решение этой проблемы?

Привет.

1 Ответ

5 голосов
/ 07 мая 2010

Хотите верьте, хотите нет, вчера я бился головой о той же самой проблеме, и вот решение, которое я нашел.Добавьте к событию FormClosed следующее:

[DllImport("ole32.dll")]
private static extern void CoFreeUnusedLibraries();

private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
    base.OnFormClosed(e);
    webBrowser1.Visible = false;
    while (webBrowser1.IsBusy)
    {
        Application.DoEvents();
    }
    webBrowser1.Dispose();
    CoFreeUnusedLibraries();
}

На самом деле кажется, что в Adobe Acrobat 9.x есть ошибка, вызывающая это исключение.

...