这是一个用VC写的DLL在连接ACCESS数据库时用到了ADO,编译时出现了以下的错误;d:\databasetrans\dbtransdll\debug\msado15.tlh(169) : error C2011: 'LockTypeEnum' : 'enum' type redefinition
d:\databasetrans\dbtransdll\debug\msado15.tlh(210) : error C2011: 'DataTypeEnum' : 'enum' type redefinition
d:\databasetrans\dbtransdll\debug\msado15.tlh(254) : error C2011: 'FieldAttributeEnum' : 'enum' type redefinition
d:\databasetrans\dbtransdll\debug\msado15.tlh(275) : error C2011: 'EditModeEnum' : 'enum' type redefinition
d:\databasetrans\dbtransdll\debug\msado15.tlh(283) : error C2011: 'RecordStatusEnum' : 'enum' type redefinition
d:\databasetrans\dbtransdll\debug\msado15.tlh(403) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
d:\databasetrans\dbtransdll\debug\msado15.tlh(523) : error C2011: 'ParameterDirectionEnum' : 'enum' type redefinition到底该如何处理,请高手指点~
#import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" no_namespace rename("EOF", "EndOfFile")

解决方案 »

  1.   

    很可能是你的#import语句放置有问题,一般尽量放在cpp文件中避免冲突
      

  2.   

    建议你这样试一下
    把所有的
    #import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    改为
    #ifndef _GGGGGGGG
    #define _GGGGGGGG
    #import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    #endif
      

  3.   

    #import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    该为
    #import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
    using namespace ADOCG
      

  4.   

    #import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
    using namespace ADOCG
    为什么这个写法编译时总是出错呀?说不认识rename
      

  5.   

    不是吧?
    这样吧
    你新建一个工程,从控件廊插入Ado Data Binding,然后拷贝其导入的语句试一试
      

  6.   

    是不是包含了其他地文件和你import进来地有冲突,重复了
      

  7.   

    一般我都在stdafx.h
    中引入
    都没有问题
    你初始化没有?
    使用前要初始化的 AfxOleInit();
      

  8.   

    #import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" no_namespace rename("EOF", "EndOfFile")
    #end
    加上应该可以了
      

  9.   

    LuoQS1((大水货)) 用你的方法好象没有什么变化~~~~~North_star(北极星) 用你给的错误解决了,十分感谢~~~能说说是什么原因吗?
    以前我导入ADO都没有出现类似的错误~~~
      

  10.   

    #pragma warning (disable: 4146)
    #import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
    using namespace ADOCG;
    #pragma warning (default: 4146)
    用这个试一下,
    还有,你有没有加afxdao.h,不要加它
      

  11.   

    注释掉下面两行//#include <afxdb.h> // MFC database classes
    //#include <afxdao.h> // MFC DAO database classes
      

  12.   

    import "C:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" 
    改成
    #import "C:\Program Files\Common Files\System\ADO\msado15.dll" 
    试试!!
      

  13.   

    #import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
    我直接在一行里面写的,没有问题,但是改了行就出现了问题,推荐你冲一个成功的例子中拷贝~