Domanda

Sto utilizzando un controllo axAcroPDFLib tratto da un'installazione di Adobe Reader 9 per mostrare e stampare documenti PDF dell'utente all'interno della mia applicazione Window Form C#.Tutto funziona bene fino alla chiusura dell'applicazione...

Genera il seguente errore:

L'istruzione a "0x0700609C" ha fatto riferimento a "0x00000014".La memoria non può essere letta

Il mio metodo FormClosing è abbastanza semplice e penso che sia sbagliato, ma non sapevo come farlo nel modo giusto:

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

        }
    }

grazie in anticipo per qualsiasi idea

È stato utile?

Soluzione

Ho appena capito come chiudere correttamente l'applicazione:

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

con questo non viene generato alcun errore :D

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top