2009-08-31 6 views
7

Im mit einem AxAcroPDFLib Steuerelement aus einer Adobe Reader 9-Installation übernommen, um Benutzer PDF-Dokumente in meiner C# -Fenster Formulare Anwendung anzuzeigen und zu drucken. Alles funktioniert gut, bis der appication schließen ...axAcroPDFLib bei Schließung Problem C#

Es führt den folgenden Fehler:

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

Meine Methode ist ganz Formclosing einfach und ich denke, falsch ist, aber ich weiß nicht, wie es zu tun in der richtigen Weise:

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

     } 
    } 

dank im Voraus für jede Idee

Antwort

11

ich heraus, dachte nur, wie die Anwendung richtig schließen:

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

mit diesem, wird kein Fehler ausgelöst: D

+0

Fantastisch, gut finden! Ich habe mich schon seit einiger Zeit damit beschäftigt, wo hast du die Antwort gefunden? – Siyfion

+0

ich erinnere mich nicht, wo ich es fand ... In einer verlorenen Website fand ich einen ähnlichen Fehler mit einer DLL von Office 2003. Ich sah die Ähnlichkeit und die gleiche Lösung für mein Problem, und es funktionierte. Aber vorher verschwendete ich WOCHEN. – Hector

+0

Dies funktioniert nicht! es hängt an axAcroPDF1.Dispose(); –