2009-08-31 9 views
7

Im używam kontrolki axAcroPDFLib pobranej z instalacji Adobe Reader 9, aby wyświetlać i drukować dokumenty PDF użytkownika w mojej aplikacji formularzy okien C#. Wszystko działa dobrze aż do końca appication ...axAcroPDFLib o problemie z zamykaniem C#

To rzuca się następujący błąd:

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

Moja metoda FormClosing jest dość prosta i myślę, że jest źle, ale nie wiedział, jak to zrobić w odpowiedni sposób:

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

     } 
    } 

dzięki z góry za jakiejkolwiek idei

Odpowiedz

11

prostu zorientowali się, jak zamknąć aplikację odpowiednio:

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

z tym, nie zostanie zgłoszony błąd: D

+0

Znakomity, dobre znaleźć! Walczyłem z tym od jakiegoś czasu, gdzie znalazłeś odpowiedź? – Siyfion

+0

Nie pamiętam, gdzie go znalazłem ... W przegranej stronie, znalazłem podobny błąd przy użyciu jednej biblioteki DLL 2003. Widziałem podobieństwo i zastosowałem to samo rozwiązanie do mojego problemu, i zadziałało. Ale wcześniej zmarnowałem TYGODNIE. – Hector

+0

To nie działa! zawiesza się na axAcroPDF1.Dispose(); –

Powiązane problemy