Pergunta

Estou usando um controle AXACROPDFLIB retirado de uma instalação do Adobe Reader 9 para mostrar e imprimir documentos PDF do usuário no meu aplicativo C# Window Forms. Tudo funciona bem até que a appicação feche ...

Ele lança o seguinte erro:

A instrução em "0x0700609c" referenciou a memória em "0x00000014". A memória não pode ser lida

Meu método de formulário é bastante simples e acho que está errado, mas eu não sabia como fazê -lo da maneira certa:

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

        }
    }

Agradecemos antecipadamente por qualquer ideia

Foi útil?

Solução

Acabei de descobrir como fechar o aplicativo corretamente:

    [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(); 
        }
    }

Com isso, nenhum erro é lançado: D

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top