开发者社区> 问答> 正文

VS操作word,往文档中写入如几万条的数据后,保存然后释放资源关闭进程中,会出现进程未退出

VS操作word,往文档中写入如几万条的数据后,保存word,然后释放资源关闭winword.exe过程中,会出现winWord.exe未退出(数据量不大时操作是正常的),请教下,这有可能是什么原因,可否有方法解决?
下列代码:
void CWord::CloseApp()
{
m_wdTable.ReleaseDispatch();
m_wdRange.ReleaseDispatch();
m_wdSel.ReleaseDispatch();
m_wdDoc.Save();
m_wdApp.Quit(vFalse, VTrue, VFalse);
m_wdDoc.ReleaseDispatch;
m_wdDocs.ReleaseDispatch;
m_wdApp.ReleaseDispatch;
}
调用:
SaveDocumentAs(strWordPath);
CloseApp();

展开
收起
a123456678 2016-03-05 14:51:52 2694 0
1 条回答
写回答
取消 提交回答
  • 数据量大时读、写、存储操作的时间都会变长,即使是txt文档也是这样。word相对于程序实际上是第三方程序,属于另外一个进程,有时候并不完全受你的控制。使用定位读写可能会快一点,存储操作实际上是调用了word本身的存储机制,具体时间要看文件长度。如果没有存储完成或者有其他异常,
    你就释放了你的资源,就会造成word文档的进程还是存在,而且无法关闭,下次再次打开这个文档就会报错。以前写过操作EXCEL经常碰到此类问题。
    你发出退出命令后必须监视word进程,直至word进程消失你才能进行下一步操作。而且word本身的Quit退出函数执行的效果感觉不是很好,不行就直接使用 shell退出命令。在你可以添加TRACE测试代码,看看到底是多少时间,多了解一下这个时间机制。

    2019-07-17 18:53:30
    赞同 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
服务上云加速大家居产业C2M进程 立即下载
面向失败设计 立即下载
低代码开发师(初级)实战教程 立即下载