出现:'DataTypeEnum' : ambiguous symbol 错误怎么办?

ado.h,ado.cpp等是一个ado封装类 ,较容易使用,流传很广

但是在工程应用或封装为动态库时经常会出现:

:error   C2872:   'DataTypeEnum'   :   ambiguous   symbol

:   error   C2872:   'ParameterDirectionEnum'   :   ambiguous   symbol  

等类似错误,网上给出的一些解决方法都是治标不治本,比如使用namespace ,

rename("DataTypeEnum","adoDataTypeEnum"),在DataTypeEnum前使用ADODB::域引用等.

error C2872错误,究其根本是该类型同名出现多个数据库类下,所以我们只要把不需要的数据库支持类去掉即可,经过察看stdafx.h头文件,发现在里面默认启动了MFC DAO数据库类支持,而该类里面同时定义了与ADO类相同的枚举类型等定义,

因此注释掉stdafx.h里面的dao包含文件即可:

//#ifndef _AFX_NO_DAO_SUPPORT
//#include <afxdao.h>   // MFC DAO database classes
//#endif // _AFX_NO_DAO_SUPPORT

原文地址:https://www.cnblogs.com/strinkbug/p/694369.html