adodb程序编译错误:类型重定义!

dylwx 2005-10-24 12:28:57
一个adodb访问数据库的程序,用#import引入了adodb15.dll库,在编译时总是提示如下:

正在编译...
stdafx.cpp
正在编译...
Work.cpp
c:\Inetpub\wwwroot\wlsys\wlsys\Release\msado15.tlh(228) : error C2011: “LockTypeEnum” : “enum”类型重定义
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\dbdaoint.h(109) : 参见“LockTypeEnum”的声明
c:\Inetpub\wwwroot\wlsys\wlsys\Release\msado15.tlh(276) : error C2011: “DataTypeEnum” : “enum”类型重定义
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\dbdaoint.h(138) : 参见“DataTypeEnum”的声明
c:\Inetpub\wwwroot\wlsys\wlsys\Release\msado15.tlh(321) : error C2011: “FieldAttributeEnum” : “enum”类型重定义
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\dbdaoint.h(127) : 参见“FieldAttributeEnum”的声明
c:\Inetpub\wwwroot\wlsys\wlsys\Release\msado15.tlh(343) : error C2011: “EditModeEnum” : “enum”类型重定义
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\dbdaoint.h(83) : 参见“EditModeEnum”的声明
c:\Inetpub\wwwroot\wlsys\wlsys\Release\msado15.tlh(352) : error C2011: “RecordStatusEnum” : “enum”类型重定义
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\dbdaoint.h(341) : 参见“RecordStatusEnum”的声明
c:\Inetpub\wwwroot\wlsys\wlsys\Release\msado15.tlh(616) : error C2011: “ParameterDirectionEnum” : “enum”类型重定义
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\dbdaoint.h(326) : 参见“ParameterDirectionEnum”的声明
Work.cpp(114) : error C2065: “adLockOptimistic” : 未声明的标识符
Work.cpp(121) : error C2039: “GetadoEOF” : 不是“_Recordset”的成员
c:\Inetpub\wwwroot\wlsys\wlsys\Release\msado15.tlh(2754) : 参见“_Recordset”的声明
Work.cpp(121) : fatal error C1903: 无法从以前的错误中恢复;正在停止编译
wlsys.cpp
Bln.cpp
正在生成代码...

生成日志保存在“file://c:\Inetpub\wwwroot\wlsys\wlsys\Release\BuildLog.htm”中
wlsys - 9 错误,0 警告


请问是什么原因?
...全文
411 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
roscoe 2005-10-24
  • 打赏
  • 举报
回复
dbdaoint.h
这个文件也定义了同样类型
//
因为#import 产生的tlh是与SDK的头文件是 必 然 冲突的
你只能选用一种,要么用SDK的头文件,要么是#import.
Kudeet 2005-10-24
  • 打赏
  • 举报
回复
或者直接在stdafx中加入
#import "msado15.dll" no_namespace rename("EOF","adoEOF")
Kudeet 2005-10-24
  • 打赏
  • 举报
回复
改成
#pragma warning(disable:4146)
#import "C:\\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
#pragma warning(default:4146)
using namespace ADODB;

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧