2009-08-31 7 views
7

Im utilizzando un controllo axAcroPDFLib prelevato da un'installazione di Adobe Reader 9 per mostrare e stampare i documenti PDF utente all'interno della mia applicazione di moduli di finestra C#. Tutto funziona bene fino a quando l'appication chiuso ...axAcroPDFLib al problema di chiusura C#

Si getta il seguente errore:

The instruction at "0x0700609c" referenced memory at "0x00000014". The memory could not be read

Il mio metodo FormClosing è abbastanza semplice e credo che è 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

risposta

11

ho appena capito come chiudere l'applicazione corretta:

[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, si butta nessun errore: D

+0

fantastico, buona trovare! Ho lottato con questo per un po 'ora, dove hai trovato la risposta? – Siyfion

+0

non ricordo dove l'ho trovato ... In un sito web perso, ho trovato un errore simile usando una dll di office 2003. Ho visto la somiglianza e ho applicato la stessa soluzione al mio problema, e ha funzionato. Ma prima, ho sprecato le SETTIMANE. – Hector

+0

Questo non funziona! si blocca su axAcroPDF1.Dispose(); –