作者:朱金灿
使用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
重新编译就没有这些编译错误了。