VC接口OFFICE有关问题
VC接口OFFICE问题
如下代码:
book.SaveAs(COleVariant("C:\\a.xls"),covOptional,covOptional,covOptional,covOptional,covOptional,(long)0,covOptional,covOptional,covOptional,covOptional,covOptional);
//range.ReleaseDispatch(); //释放单元格对象资源
//book.ReleaseDispatch(); //释放工作表对象资源
//books.ReleaseDispatch(); //释放工作表集合对象资源
//sheet.ResetAllPageBreaks(); //释放工作溥对象资源
//sheets.ReleaseDispatch(); //释放工作簿集合对象资源
//app.ReleaseDispatch(); //释放进程对象资源
book.Close(covOptional,COleVariant("a.xls"),covOptional);
books.Close();
app.Quit();
}
我把注释起来的部分放开,程序执行后在任何管理器中就还有一个excle.exe进程没有被关闭掉.而注释起来后,只用最后3行确可以.而网上都说要用那几行去释放才行.
问题1:到底要不要调用注释起来的那几行?
问题2:调用注释的那几行的作用是什么?如果不调用会有什么问题?
------解决方案--------------------
excel要么就是每使用一个对象都放入vector然后每个对象都释放,要么一次性释放(类似于你最后三行),不然它会有接口被占用导致无法退出。
如下代码:
book.SaveAs(COleVariant("C:\\a.xls"),covOptional,covOptional,covOptional,covOptional,covOptional,(long)0,covOptional,covOptional,covOptional,covOptional,covOptional);
//range.ReleaseDispatch(); //释放单元格对象资源
//book.ReleaseDispatch(); //释放工作表对象资源
//books.ReleaseDispatch(); //释放工作表集合对象资源
//sheet.ResetAllPageBreaks(); //释放工作溥对象资源
//sheets.ReleaseDispatch(); //释放工作簿集合对象资源
//app.ReleaseDispatch(); //释放进程对象资源
book.Close(covOptional,COleVariant("a.xls"),covOptional);
books.Close();
app.Quit();
}
我把注释起来的部分放开,程序执行后在任何管理器中就还有一个excle.exe进程没有被关闭掉.而注释起来后,只用最后3行确可以.而网上都说要用那几行去释放才行.
问题1:到底要不要调用注释起来的那几行?
问题2:调用注释的那几行的作用是什么?如果不调用会有什么问题?
------解决方案--------------------
excel要么就是每使用一个对象都放入vector然后每个对象都释放,要么一次性释放(类似于你最后三行),不然它会有接口被占用导致无法退出。