wxWidgets自动化EXCEL不能释放自动化对象
ks_is 2011-11-08 12:47:35 void read_excel(std::string filename)
{
wxVariant arg[2];
wxAutomationObject excel,workbook, worksheet,range;
excel.CallMethod(_T("workbooks.open"),s2w(filename));
std::string::size_type pos;//取文件名
pos=filename.find_last_of("\\");
if (pos!=string::npos)filename=filename.substr(pos+1);
arg[0]=s2w(filename);
if (!excel.GetObject(workbook,_T("workbooks"),1,arg))
{
wxMessageBox(
_T("不能打开")+s2w(filename)
);
return;
}
arg[0]=1L;
if (!workbook.GetObject(worksheet,_T("worksheets"),1,arg))
{
wxMessageBox(_T("不能打开工作表!"));
return;
}
//.................操作EXCEL
workbook.CallMethod(_T("close"));
excel.CallMethod(_T("quit"));
excel.CallMethod(_T("close"));
}
操作EXCEL全部正常,也能保存数据,关闭EXCEL及退出在屏幕上均正常,
但用任务管理器查看,发现EXCEL在内存中还存在,多次调用则有多个对象
不知何故,要如何处理才能真正退出,否则内存会出问题.