.net Word Interop关闭问题

时间:2012-10-26 13:39:34

标签: vb.net ms-word office-interop

我正在vb.net中开发一个使用Microsoft.Office.Interop.Word在Word文档中打印输出的应用程序。如果我关闭应用程序,我想关闭文档(使用“另存为...”对话框)。如果用户想要在应用程序结束之前关闭文档,则应该可以。一切似乎工作正常,但在结束后(在这两种情况下)我得到这个错误:

  

此文件正由其他应用程序或用户使用。

     

(C:... \模板\的Normal.dotm)

我认为问题是文档所有者是应用程序,因此用户无法关闭它......但是当应用程序关闭doc时(使用quit方法)也会发生错误。 我在frmMain_FormClosing中运行的代码是:

If _objWord IsNot Nothing Then
    Try
        _objWord.Quit()
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_objDoc)
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_objWord)
    Catch ex As Exception
    End Try
End If

我对Excel也这样做,我没有任何问题。

1 个答案:

答案 0 :(得分:0)

添加文档时,请确保使用

Dim d As Word.Document = w.Documents.Add()

而不是

d = New Word.Document 'this syntax can cause a memory leak!'