2009-08-31 32 views
7

Im sử dụng điều khiển axAcroPDFLib được lấy từ cài đặt Adobe Reader 9 để hiển thị và in tài liệu PDF của người dùng trong ứng dụng biểu mẫu cửa sổ C# của tôi. Mọi thứ hoạt động tốt cho đến khi appication gần ...axAcroPDFLib khi đóng sự cố C#

Nó ném các lỗi sau:

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

phương pháp FormClosing của tôi là khá đơn giản và tôi nghĩ là sai, nhưng tôi không biết làm thế nào để làm điều đó một cách đúng đắn:

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

     } 
    } 

cảm ơn trước cho bất kỳ ý tưởng

Trả lời

11

tôi chỉ tìm ra cách để đóng ứng dụng đúng cách:

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

với điều này, không có lỗi nào được ném: D

+0

Tuyệt vời, tốt! Tôi đã đấu tranh với điều này trong một thời gian, bạn đã tìm thấy câu trả lời ở đâu? – Siyfion

+0

Tôi không nhớ nơi tôi tìm thấy nó ... Trong một trang web bị mất, tôi tìm thấy một lỗi tương tự bằng cách sử dụng một dll văn phòng năm 2003. Tôi thấy sự giống nhau và áp dụng cùng một giải pháp cho vấn đề của tôi, và nó đã làm việc. Nhưng trước đó, tôi lãng phí WEEKS. – Hector

+0

Điều này không hoạt động! nó treo trên axAcroPDF1.Dispose(); –