同时使用ADO与Excel类库冲突的问题

时间:2021-11-07 10:43:07

  客户需要一个Demo程序实现Access数据库表导出到Excel表格,并将表中存储的照片(OLE对象)以其中一个字段(编号)命名存储到本地。程序中引入了ADO操作Access数据库("C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")),当再次引入Excel.h头文件时候发生冲突,出现很多错误。去掉其中一个引用编译无错。

  查找资料,发现ADO(msado15.dll)与Office(MSWORD.dll)中的类同名了。

  1)添加上命名空间 
    如 Excel::_ApplicationPtr _XlApp
        Word::_ApplicationPtr _WordApp;

    加上 rename("Fileds","_DreamFileds") rename("Filed","_DreamFiled")

  2)将操作Excel部分的函数代码与操作ADO部分的代码放在不同的文件中,并仅在使用的.cpp文件中引用,使得同时互不包含(惹不起躲得起策略,呵呵)