zoukankan      html  css  js  c++  java
  • VC++-ADO/COM组件创建Excel服务失败

    问题描述

    这个问题我印象中我两年前就遇到了,当时我做了一个控制台程序,读写EXCEL。

    写好了,一执行就出现这个报错,也找不到什么问题,后来问了我的开发老师苏工。

    他一语就点破了问题,COM没初始化!

    CoInitialize(NULL);

    就这么一句代码没加。

    今天,时隔多年,我今天在开发一个MFC的程序,默认状态执行程序,初始化弹出对话框,在点OK。

    可以正常读写EXCEL,但是当把OK的函数加到初始化界面那里,就报错这个问题了。

    我还是找了半天没找到问题,后来还是问了开发老师苏工,他点醒我的。

    这个问题还是两年前遗留下来的问题,当时我发现问题后,并没有把初始化的代码 加到我封装好的SDK中,

    所以导致我今天继续用以前的SDK就出现了当年的问题。

    现在要写个博客记录下这个问题,免得以后再次遇到又不知道。

    问题演示

    解决后演示

    在我自己封装的SDK里,加了一个初始化COM的函数

    // 初始化Excel OLE
    BOOL ExcelApi::InitExcel()
    {
        // 初始化COM库
        CoInitialize(NULL);
        // 初始化Excel
        if (!ExcelApp.CreateDispatch("Excel.Application"))
        {
            AfxMessageBox("创建Excel服务失败!");
        }
        ExcelApp.put_DisplayAlerts(FALSE);       // 屏蔽警告
        return TRUE;
    }

    每次打开EXCEL前。先调一下初始化。

    SDK下载https://www.cnblogs.com/nxopen2018/p/11055161.html

    Caesar卢尚宇

    2021年2月22日

    作者: 阿飞

    出处: https://www.cnblogs.com/nxopen2018/>

    关于作者:......

    如有问题, 可在底部(留言)咨询.

  • 相关阅读:
    django笔记
    pandas dataframe的合并(append, merge, concat)
    pandas删除行删除列,增加行增加列
    github上值得关注的前端项目
    CSS布局奇淫技巧之--各种居中
    级联菜单
    鼠标移入移出改变透明度
    图片轮播特效
    图片放大镜效果
    css3多列布局
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14432396.html
Copyright © 2011-2022 走看看