在使用 vc + ado 压缩 Access 数据库时,导入文件时出现以下问题#import "C:\Program Files\Common Files\System\ado\msjro.dll" no_namespace  
导入上面的库,出现以下异常
debug\msjro.tlh(48) : error C2011: 'ReplicaTypeEnum' : 'enum' type redefinition
若是这样导入
#import "C:\Program Files\Common Files\System\ado\msjro.dll" rename_namespace("NewName")
又出现以下异常
error C2065: 'IJetEnginePtr' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'jet'
error C2065: 'jet' : undeclared identifier
error C2065: 'JetEngine' : undeclared identifier
error C2227: left of '->CompactDatabase' must point to class/struct/union

解决方案 »

  1.   

    stdafx.h 文件中:
    #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
    #import "c:\program files\common files\system\ado\msjro.dll"
      

  2.   

    若是这样导入 
    #import "C:\Program Files\Common Files\System\ado\msjro.dll" rename_namespace("NewName") 
    又出现以下异常在这一步改动的基础上,再更改一处地方即可,需要将引用空间加上,看来楼主缺乏探索精神啊!
    NewName::IJetEnginePtr jet(__uuidof(NewName::JetEngine));