2009-08-31 4 views
7

Im с помощью управления axAcroPDFLib, взятого из установки Adobe Reader 9, чтобы показывать и распечатывать документы пользователя PDF в моем приложении форм окон C#. Все работает просто отлично до тех пор пока в Appication близко ...axAcroPDFLib при закрытии проблемы C#

Он выдает следующее сообщение об ошибке:

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

Мой метод FormClosing довольно прост и я думаю, что это неправильно, но я не знаю, как это сделать в правильном направлении:

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

     } 
    } 

заранее спасибо за любую идею

ответ

11

Я просто понял, как закрыть приложение правильно:

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

с этим, не брошено без ошибок: D

+0

Потрясающе, хорошо найти! Я боролся с этим какое-то время, где вы нашли ответ? – Siyfion

+0

Я не помню, где я нашел его ... На потерянном веб-сайте я нашел аналогичную ошибку, используя одну DLL Office 2003. Я увидел сходство и применил то же решение к моей проблеме, и это сработало. Но до этого я потратил впустую НЕДЕЛИ. – Hector

+0

Это не работает! он висит на axAcroPDF1.Dispose(); –

Смежные вопросы