即时通讯使用从ADOBE READER 9安装采取axAcroPDFLib控制显示和我的C#窗口形式的应用程序中打印用户的PDF文档。一切都运行得很好,直到该器件的应用密切...

有引发以下错误:

  

在 “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