客户需要一个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文件中引用,使得同时互不包含(惹不起躲得起策略,呵呵)