2

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

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

(C:...\Templates\Normal.dotm)

我认为问题在于文档所有者是应用程序,因此用户无法关闭它......但是当应用程序关闭文档时也会发生错误(使用退出方法)。我运行的代码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 做同样的事情,我没有任何问题。

4

1 回答 1

0

添加文档时,请确保使用

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

并不是

d = New Word.Document 'this syntax can cause a memory leak!'
于 2013-09-03T05:41:01.020 回答