文章类型: VC&C++
关键词: LockTypeEnum,,DataTypeEnum,类型,type,error,C2011,类型重定义
内容摘要: “locktype”enum type 类型重定义问题的解决

LockTypeEnum DataTypeEnum等类型重定义问题的解决

2016/9/30 10:20:31    来源:apple    阅读:

 使用ado来连接数据库,结果出现这样一些编译错误:

1>f:\c++pro\iocptser\debug\msado15.tlh(228) : error C2011: “LockTypeEnum”: “enum”类型重定义

1> c:\program files\microsoftsdks\windows\v6.0a\include\dbdaoint.h(109): 参见“LockTypeEnum”的声明

1>f:\c++pro\iocptser\debug\msado15.tlh(276) : error C2011: “DataTypeEnum”: “enum”类型重定义

1> c:\programfiles\microsoft sdks\windows\v6.0a\include\dbdaoint.h(138): 参见“DataTypeEnum”的声明

1>f:\c++pro\iocptser\debug\msado15.tlh(321) : error C2011: “FieldAttributeEnum”:“enum”类型重定义

1> c:\programfiles\microsoft sdks\windows\v6.0a\include\dbdaoint.h(127): 参见“FieldAttributeEnum”的声明

1>f:\c++pro\iocptser\debug\msado15.tlh(343) : error C2011: “EditModeEnum”: “enum”类型重定义

1> c:\programfiles\microsoft sdks\windows\v6.0a\include\dbdaoint.h(83): 参见“EditModeEnum”的声明

1>f:\c++pro\iocptser\debug\msado15.tlh(352) : error C2011: “RecordStatusEnum”: “enum”类型重定义

 

        看样子它是跟WindowsSDK的某些头文件定义的类型冲突了,从dbdaoint.h我大致猜出它是跟dao库冲突了。我想既然我不用dao连接数据,就把它头文件注释掉好了,于是把stdafx.h下面的dao头文件相关代码注释掉:

#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h>                     // MFC DAO 数据库类
#endif // _AFX_NO_DAO_SUPPORT

重新编译就没有这些编译错误了。


上面的是网上的给出的解决思路。但是我用的不是这种方法。

经过分析,发现在VC++的MFC框架下的预编译复选项中已经包含了数据库的相关操作(即MFC DAO 数据库类),这与使用的ado操作数据库用到的类中包含的数据类型有冲突,所以只能选其中的一个。我的解决办法是:重新创建了基于Win32的DLL项目,此时当然就不会包含DAO数据库类了,引入ado操作数据库就没有上面的错误了。

↑ 上一篇文章:VC++中出现[warning C4996]: 'sprintf': This function or variable may be unsafe 关键词:VS,VC++,VC,warning,C4996,spr.. 发布日期:2016/9/30 10:11:05
↓ 下一篇文章:VC++中智能指针auto_ptr与shared_ptr区别与使用 关键词:VC++,智能指针,auto_ptr,shared_pt.. 发布日期:2016/9/30 10:45:45
相关文章:
error C2011: “LockTypeEnum”: “enum”类型重定义 关键词:error,C2011:,“LockTypeEnum”:,“enum”类型重定义 发布日期:2017-08-30 13:35
vc++ error CVT1100: 资源重复。类型: VERSION,名称: 1,语言: 0x0804 关键词:vc++,error,CVT1100:,资源重复。类型:,VERSION,名称:,1,语言:,0.. 发布日期:2016-08-05 13:16
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 关键词:error,C4430,缺少类型说明符,假定为,int,注意,C++,不支持默认,int 发布日期:2018-08-01 16:58
相关目录:.NETVC&C++软件开发
我要评论
正在加载评论信息......