VC中操作excel和word冲突的解决方案

来源:互联网 发布:淘宝店铺淘宝类别 编辑:程序博客网 时间:2024/05/29 04:34

最近在做一些office方面的东西,碰到一个问题:当用VC加载word以及excel的时候,出现冲突,第一反应是把有冲突的类都改名,后来想想这种方法太繁琐了,于是就想到另外一种方法,加命名空间,如下:


1.   添加 EXCEL9.OLB,会生成excel9.h和excel9.cpp
      添加 MSWORD9.OLB,会生成msword.h和msword.cpp

2.   不要在staafx.h中添加对excel9.h和msword.h的引用(很多文章说是在这里引用,只是excel或word是没问题的)
      要加上以下2个引用:

       #include <COMDEF.H>
       #include <CSTDIO>

3.    在excel9.h的开始添加
       namespace mexcel //mexcel为命名空间
       {
       最后加上}

       在msword.h的开始添加
       namespace mword //mword为命名空间
       {
       最后加上}

4.     在excel9.cpp的其它引用最后加上
        using namespace mexcel;

        在msword.cpp的其它引用最后加上
        using namespace mword;

5.     在主程序的cpp中添加如下引用
        using namespace mword;
        using namespace mexcel;
        //以下引用也要放在其它引用的后面
        #include "excel9.h"
        #include "msword.h"

6.     在需要引用word和excel的地方用
        mexcel::
        mword::
        添加对象的引用就OK了

原创粉丝点击