ADO.h中 
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")现在计划将Ado.h Ado.cpp封装到动态库中,出现下面的错误提示,请协助,高分相送,反正我有8000多分: error C2872: 'DataTypeEnum' : ambiguous symbol: error C2872: 'ParameterDirectionEnum' : ambiguous symbol: error C2664: 'CreateParameter' : cannot convert parameter 2 from 'enum DataTypeEnum' to 'enum ADOCG::DataTypeEnum'
        Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
: error C2872: 'ParameterDirectionEnum' : ambiguous symbol
: error C2664: 'PutDirection' : cannot convert parameter 1 from 'enum ParameterDirectionEnum' to 'enum ADOCG::ParameterDirectionEnum'
        Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
: error C2872: 'DataTypeEnum' : ambiguous symbol
: error C2664: 'PutType' : cannot convert parameter 1 from 'enum DataTypeEnum' to 'enum ADOCG::DataTypeEnum'
        Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)

解决方案 »

  1.   

    在DLL中引入ADO库
    采用下面方法在stdafx中加入
    #import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","adoEOF")
    引入ADO库的时候可能会遇到下面一些错误信息,说是有EditModeEnum、RecordStatusEnum、ParameterDirectionEnum、LockTypeEnum、DataTypeEnum、FieldAttributeEnum重定义!总是编译通不过。
    遇到这种情况可以试试改成
    #pragma warning(disable:4146)
    #import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
    #pragma warning(default:4146)
    using namespace ADODB;