Вопрос

Я использую элемент управления axAcroPDFLib, взятый из установки Adobe Reader 9, для отображения и печати пользовательских PDF-документов в моем приложении C # window forms.Все работает просто отлично, пока приложение не закроется...

Он выдает следующую ошибку:

Инструкция по адресу "0x0700609c" ссылается на память по адресу "0x00000014".Не удалось прочитать память

Мой метод FormClosing довольно прост, и я думаю, что он неправильный, но я не знал, как сделать это правильно:

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (axAcroPDF1 != null)
        {   
            axAcroPDF1.Dispose();

        }
    }

заранее спасибо за любую идею

Это было полезно?

Решение

Я только что выяснил, как правильно закрыть приложение:

    [System.Runtime.InteropServices.DllImport("ole32.dll")]
    static extern void CoFreeUnusedLibraries();

    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (axAcroPDF1 != null)
        {                                
            axAcroPDF1.Dispose();                
            System.Windows.Forms.Application.DoEvents();
            CoFreeUnusedLibraries(); 
        }
    }

при этом ошибка не выдается:D

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top