2009-08-31 20 views
7

C# pencere formları uygulamasında kullanıcı PDF belgelerini göstermek ve yazdırmak için Adobe Reader 9 kurulumundan alınan bir axAcroPDFLib denetimini kullanıyorum. Her şey ... İMKB'de İşlem Gören yakın e kadar gayet güzel çalışıyoraxAcroPDFLib kapanış probleminde C#

Aşağıdaki hata atıyor:

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

Benim FormClosing yöntem oldukça basit ve ben yanlış olduğunu düşünüyorum, ama bunu nasıl bilmiyordu sadece düzgün uygulamayı kapatmak için anladım

cevap

11

bir fikrin için şimdiden

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

     } 
    } 

teşekkürler:

doğru şekilde bununla
[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(); 
     } 
    } 

, hiçbir hata atılır: D

+0

Fantastik, iyi bulun! Bir süredir bununla uğraşıyorum, cevabı nereden buldunuz? – Siyfion

+0

Nerede bulduğumu hatırlamıyorum ... Kaybolan bir web sitesinde, 2003'te bir tane dll kullanarak benzer bir hata buldum. Benzerliği gördüm ve aynı çözümü benim sorunuma uyguladım ve işe yaradı. Ama ondan önce, WEEKS'i boşa harcadım. – Hector

+0

Bu işe yaramıyor! axAcroPDF1.Dispose() üzerinde askıda kalıyor; –

İlgili konular