编写类的DLL时,类中用到ADO数据库,出现类型重定义的问题解决及原因!!
来源:互联网 发布:软件著作gzcopyright 编辑:程序博客网 时间:2024/06/03 22:48
错误列表:
>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(228) : error C2011: “LockTypeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(109) : 参见“LockTypeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(276) : error C2011: “DataTypeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(138) : 参见“DataTypeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(321) : error C2011: “FieldAttributeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(127) : 参见“FieldAttributeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(343) : error C2011: “EditModeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(83) : 参见“EditModeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(352) : error C2011: “RecordStatusEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(341) : 参见“RecordStatusEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(616) : error C2011: “ParameterDirectionEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(326) : 参见“ParameterDirectionEnum”的声明
1>d:\program files\opencv2.0\vc2008\include\opencv\cvcompat.h(803) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>d:\test\autoloadmatrix\personadd\add.cpp(131) : error C2065: “adLockReadOnly”: 未声明的标识符
1>d:\test\autoloadmatrix\personadd\add.cpp(191) : error C2065: “adLockOptimistic”: 未声明的标识符
1>d:\test\autoloadmatrix\personadd\add.cpp(244) : error C2065: “adLockOptimistic”: 未声明的标识符
1>d:\test\autoloadmatrix\personadd\add.cpp(289) : error C2065: “adLockOptimistic”: 未声明的标识符
1>d:\test\autoloadmatrix\personadd\add.cpp(499) : error C2065: “adLockReadOnly”: 未声明的标识符
1>d:\test\autoloadmatrix\personadd\add.cpp(710) : error C2065: “adLockOptimistic”: 未声明的标识符
1>d:\test\autoloadmatrix\personadd\add.cpp(728) : error C2065: “adLockOptimistic”: 未声明的标识符
1>PASSWD.cpp
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(228) : error C2011: “LockTypeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(109) : 参见“LockTypeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(276) : error C2011: “DataTypeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(138) : 参见“DataTypeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(321) : error C2011: “FieldAttributeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(127) : 参见“FieldAttributeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(343) : error C2011: “EditModeEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(83) : 参见“EditModeEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(352) : error C2011: “RecordStatusEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(341) : 参见“RecordStatusEnum”的声明
1>d:\test\autoloadmatrix\personadd\debug\msado15.tlh(616) : error C2011: “ParameterDirectionEnum”: “enum”类型重定义
1> c:\program files\microsoft sdks\windows\v6.0a\include\dbdaoint.h(326) : 参见“ParameterDirectionEnum”的声明
1>d:\test\autoloadmatrix\personadd\passwd.cpp(120) : error C2065: “adLockOptimistic”: 未声明的标识符
1>Crypt.cpp
1>正在生成代码...
1>生成日志保存在“file://d:\test\AutoLoadMatrix\PersonAdd\Debug\BuildLog.htm”
1>PersonAdd - 20 个错误,1 个警告
原因分析:
1、在头文件中:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
2、在“stdafx.h ”文件中,
#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC 数据库类
#endif // _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO 数据库类
#endif // _AFX_NO_DAO_SUPPORT
1与2进行了相同的操作,所以会出现重定义的错误!!
解决方法:
1与2只能留一个!
将以下代码注释:
#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC 数据库类
#endif // _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO 数据库类
#endif // _AFX_NO_DAO_SUPPORT
- 编写类的DLL时,类中用到ADO数据库,出现类型重定义的问题解决及原因!!
- 编写DLL导出类时,类中用到ADO,出现类型重定义的问题解决及原因
- 把ADO类导出为DLL时碰到enum”类型重定义 的问题
- 关系数据库中用到的范式类型
- Properties中用到的类型
- 该死的ADO重定义问题
- ADO数据库的类型格式
- ADO数据库 数据的类型
- 类型的良性重定义
- 在头文件中用宏定义来避免重复包含,仍然会出现函数重定义的错误
- 在头文件中用宏定义来避免重复包含,仍然会出现函数重定义的错误
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- Java提交到MySQL数据库出现乱码的原因
- C++中类定义时不允许使用不完整的类型错误提示原因分析
- 孙鑫VC深入详解教程中ADO访问数据库中出现runtime error的问题解决
- VC中用ADO连接SQL SERVER出现的错误
- DLL中dllmain重定义的解决办法
- 读ICCV Best Student Paper有感
- 清华大学计算中心培训部-技术分享:java入门教程:获取一个包含空格的输入
- Qte config 配置内容详解
- HttpServletResponse对象
- “G”“E”“H”“T”信号完美解释
- 编写类的DLL时,类中用到ADO数据库,出现类型重定义的问题解决及原因!!
- .net 操作XML小结
- 写在我27岁的时候
- Linux cp 命令
- <Java2参考大全>中的一段
- 安卓系统的开发与测试
- SGU117
- 强制横屏或竖屏解决方案
- 范围搜索 (Range Query)