• 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 > 请大侠帮忙:在VC中操作Excel的多个Sheet,使其可见,然后关闭Excel时出错?都进来看看,贴了部分代码。

请大侠帮忙:在VC中操作Excel的多个Sheet,使其可见,然后关闭Excel时出错?都进来看看,贴了部分代码。

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

佚名通过本文主要向大家介绍了请大侠帮忙:在VC中操作Excel的多个Sheet,使其可见,然后关闭Excel时出错?都进来看看,贴了部分代码。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请大侠帮忙:在VC中操作Excel的多个Sheet,使其可见,然后关闭Excel时出错?都进来看看,贴了部分代码。
描述:

在VC中操作Excel,完成多个sheet的报表,生成报表后使Excel可见,方便观看生成的报表。程序中不关闭Excel进程,等用户看完报表后手动关闭Excel。但是在手动关闭时出错如下:
---------------------------
EXCEL.EXE - 应用程序错误
---------------------------
"0x30033ac2" 指令引用的 "0x650918d8" 内存。该内存不能为 "read"。
要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
---------------------------
确定   取消   
---------------------------
请大侠们帮忙诊断一下!
_ApplicationPtr  app;//("Excel.Application");  
HRESULT  hr  =  S_OK;  
CLSID  clsid;  
CLSIDFromProgID(L"Excel.Application",  &clsid);    
app.CreateInstance(clsid);  
WorkbooksPtr  books;  
_WorkbookPtr  book;  
long  lcid  =LOCALE_USER_DEFAULT;  
SheetsPtr  sheets;  
app->get_Workbooks(&books);  
book  =  books->Add(covOptional,lcid);  
book->get_Worksheets(&sheets);  
IDispatchPtr  pDisp;  
{
sheets->get_Item(_variant_t((short)1),&pDisp);  
_WorksheetPtr  sheet(pDisp);  
sheet->PutName("AAA");
                  ......
          }
          {
sheets->get_Item(_variant_t((short)2),&pDisp);  
_WorksheetPtr  sheet(pDisp);  
sheet->PutName("AAA");
                  ......
          }
         app->put_AskToUpdateLinks(lcid,VARIANT_FALSE);  
app->put_AlertBeforeOverwriting(lcid,VARIANT_FALSE);  
app->put_UserControl(VARIANT_FALSE);  
app->put_DisplayAlerts(0,VARIANT_FALSE); 
app->PutVisible(0,VARIANT_TRUE);
LPCTSTR  file_name  =  strExcelFile;  
_variant_t  varfilename(file_name);  
DeleteFile(file_name);  
HRESULT  hrMethod  =  book->SaveAs(varfilename,covOptional,covOptional,covOptional,covOptional,covOptional,xlNoChange,vtMissing,vtMissing,vtMissing,vtMissing,0l);  
book->put_Saved(0,VARIANT_TRUE);    
// 如果使用下面注释的代码在程序中关闭Excel进程,则不会出错。很郁闷呀!
/* book->Close(COleVariant(VARIANT_FALSE),vtMissing,vtMissing,0); 
books->Close(0);              
app->Quit();
//*/


解决方案1:

是因为模块退出时,_Application实例已经销毁了,
不用智能指针 _ApplicationPtr,用接口指针,或者在 _ApplicationPtr 实例化后,增加一个引用计数


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

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

  • 请大侠帮忙:在VC中操作Excel的多个Sheet,使其可见,然后关闭Excel时出错?都进来看看,贴了部分代码。

相关文章

  • 2017-06-04 COM+服务器很容易死机吗?
  • 2017-06-04 请问VC中如何将flash的背景透明?
  • 2017-06-04 IE和VB中响应OCX事件造成IE和VB程序退出的问题
  • 2017-06-04 MFC中内嵌Activex的Activex插件开发怎么实现
  • 2017-06-05 调用AfxBeginThread的时候出现的错误
  • 2017-06-05 怎样监控一个应用程序的进程是否结束
  • 2017-06-04 第二贴了com如何传递一个图片给net调用~~~~
  • 2017-06-04 在MFC中,怎么打开Excel的文件哦?
  • 2017-06-04 DCOM高手来看看!
  • 2017-06-05 typedefvoidCALLSVRPROCCLog;

文章分类

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

最近更新的内容

    • vc解析xml函数参数个数的疑惑!
    • 请教怎么样建立一个工作者线程?
    • 谁能帮我把下面代码写一个对应的C#代码
    • VC如何往ppt里添加图表
    • vcnet2003中ATLActiveX控件调用动态库中类问题LNK2019连接错误
    • VC中使用webbrowser,我想拦截下载对话框,程序指定默认下载路径,取出文件名,做过的帮忙看看啊,分不多,50分敬上,勿怪,先谢谢大家了
    • 调用CoCreateInstance时,返回值为“未注册类别”
    • vs2008MFC向excel中动态写入数据!求助!
    • 背景透明控件,刷新的问题
    • NT服务中用socket的问题

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

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