• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 如何释放EXCEL所占的内存?

如何释放EXCEL所占的内存?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了excel vba 释放内存,怎么释放excel内存,excel 释放内存,苹果如何释放内存,苹果手机释放内存等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何释放EXCEL所占的内存?
描述:

为了在程序中实现导入EXCEL数据的功能,我写了下面一段代码,但是在导入完成后EXCEL虽然成功退出了(在任务管理器中可以看到对应的进程的确是被结束了),但其所占内存并没有被释放,非要把整个程序关了才能释放。调试了很久实在不知道问题出在哪里,不知道有哪位大虾可以指教一下?因为EXCEL数据非常多,所占的内存至少有100MB左右。谢谢!
_Application ExcelApp; 
Workbooks wbsMyBooks; 
_Workbook wbMyBook; 
Worksheets wssMysheets; 
// create excel 2000 server(to start up excel)
if (!ExcelApp.CreateDispatch("Excel.Application", NULL)) 
{ 
::AfxMessageBox(_T("创建Excel服务失败!"), MB_ICONERROR, -1);
exit(1); 
} 
// use the template file to create a new document
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(), true); 
CString strXLTFilename = oFileDialog.GetPathName();
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t((LPCTSTR)strXLTFilename))); 
// get worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(), true); 
_Worksheet wsMysheet; 
Range rgMyRge;
for(INT nIndex = 1; nBureauSerialNumber != 0 && nIndex <= wssMysheets.GetCount(); nIndex++)
{
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t((LONG)nIndex)));
rgMyRge.AttachDispatch(wsMysheet.GetCells(), true); 
...
//释放对象 
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch(); 
}
...
COleVariant covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
wbMyBook.SetSaved(TRUE);
wbMyBook.Close(covFalse, covOptional, covOptional);
wbsMyBooks.Close();
ExcelApp.Quit();
wssMysheets.ReleaseDispatch(); 
wbMyBook.ReleaseDispatch(); 
wbsMyBooks.ReleaseDispatch(); 
ExcelApp.ReleaseDispatch();
HWND hwndExcel;
hwndExcel = ::FindWindow("XLMain", NULL);
if(hwndExcel == NULL)
{
long lError = GetLastError();
CString strMessage;
strMessage.Format("FindWindow error code = %d", lError);
AfxMessageBox(strMessage);
}
else
{
DWORD pid;
DWORD dThread = GetWindowThreadProcessId(hwndExcel, &pid);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pid);
TerminateProcess(hProcess, 0);
}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何释放EXCEL所占的内存?

相关文章

  • 2017-06-04 我在Active控件中定义一个借口函数,GetMyNameBSTRname!请问在htm中怎么调用?
  • 2017-06-04 MFC开发的ActiveX打包CAB
  • 2017-06-04 ruby调用com中的事件问题
  • 2017-06-04 蒋大哥,各位高手,请帮忙
  • 2017-06-04 请教OCX制作的问题。
  • 2017-06-04 vc6中如何将CComBSTR转换成char?
  • 2017-06-04 WTL::CStringandATL::CString
  • 2017-06-05 高分求解,如何获得动态内存地址内的数据
  • 2017-06-05 从DLL中读取对话框的问题
  • 2017-06-04 请大侠帮忙:在VC中操作Excel的多个Sheet,使其可见,然后关闭Excel时出错?都进来看看,贴了部分代码。

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • comexe类型的组件,总是提示未注册的类错误
    • combobox输入中文显示乱码问题
    • 关于vc++中的console控制问题--调用system时怎样隐藏ms-dos窗口?
    • 关于数据库表的问题
    • vcnet中的ComponentGallery在什么地方?我只是想插入SplashScreenComponent!
    • _variant_t的=操作符
    • 网页如何调用ATL对话框
    • ATL建的复合控件怎么不响应WM_INITDIALOG消息??
    • 如何得到某种文件类型所对应的所有打开方式的列表?
    • 当使用线程(worker)的时候,线程退出的最好方法是

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有