--------------------Configuration: RealAlarm_RCMS_WndCtrl - Win32 Debug--------------------
Compiling...
FuncApi.cpp
c:\program files\vc98\include\dbdaoint.h(33) : error C2011: 'EditModeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(57) : error C2011: 'LockTypeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(73) : error C2011: 'FieldAttributeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(83) : error C2011: 'DataTypeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(255) : error C2011: 'ParameterDirectionEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(268) : error C2011: 'RecordStatusEnum' : 'enum' type redefinition
Error executing cl.exe.RealAlarm_RCMS_WndCtrl.dll - 6 error(s), 0 warning(s)给位兄弟姐妹,我在添加了某个文件到VC6工程之后,编译时提示上述错误。这些结构如下:typedef enum EditModeEnum {
dbEditNone = 0,
dbEditInProgress = 1,
dbEditAdd = 2,
dbEditChanged = 4,
dbEditDeleted = 8,
dbEditNew = 16
} EditModeEnum;typedef enum LockTypeEnum {
dbPessimistic = 2,
dbOptimistic = 3,
dbOptimisticValue = 1,
dbOptimisticBatch = 5
} LockTypeEnum;typedef enum FieldAttributeEnum {
dbFixedField = 1,
dbVariableField = 2,
dbAutoIncrField = 16,
dbUpdatableField = 32,
dbSystemField = 8192,
dbHyperlinkField = 32768,
dbDescending = 1
} FieldAttributeEnum;typedef enum DataTypeEnum {
dbBoolean = 1,
dbByte = 2,
dbInteger = 3,
dbLong = 4,
dbCurrency = 5,
dbSingle = 6,
dbDouble = 7,
dbDate = 8,
dbBinary = 9,
dbText = 10,
dbLongBinary = 11,
dbMemo = 12,
dbGUID = 15,
dbBigInt = 16,
dbVarBinary = 17,
dbChar = 18,
dbNumeric = 19,
dbDecimal = 20,
dbFloat = 21,
dbTime = 22,
dbTimeStamp = 23
} DataTypeEnum;typedef enum ParameterDirectionEnum {
dbParamInput = 1,
dbParamOutput = 2,
dbParamInputOutput = 3,
dbParamReturnValue = 4
} ParameterDirectionEnum;typedef enum RecordStatusEnum {
dbRecordUnmodified = 0,
dbRecordModified = 1,
dbRecordNew = 2,
dbRecordDeleted = 3,
dbRecordDBDeleted = 4
} RecordStatusEnum;我以前遇到这种问题,就把Stdafx.h中的下面代码掉,就能解决这个问题。#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC database classes
#endif // _AFX_NO_DB_SUPPORT#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT但是我添加进来的是别人的文件,我不能随便把上述语句掉。
请问各位兄弟姐妹有没有解决的办法?
Compiling...
FuncApi.cpp
c:\program files\vc98\include\dbdaoint.h(33) : error C2011: 'EditModeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(57) : error C2011: 'LockTypeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(73) : error C2011: 'FieldAttributeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(83) : error C2011: 'DataTypeEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(255) : error C2011: 'ParameterDirectionEnum' : 'enum' type redefinition
c:\program files\vc98\include\dbdaoint.h(268) : error C2011: 'RecordStatusEnum' : 'enum' type redefinition
Error executing cl.exe.RealAlarm_RCMS_WndCtrl.dll - 6 error(s), 0 warning(s)给位兄弟姐妹,我在添加了某个文件到VC6工程之后,编译时提示上述错误。这些结构如下:typedef enum EditModeEnum {
dbEditNone = 0,
dbEditInProgress = 1,
dbEditAdd = 2,
dbEditChanged = 4,
dbEditDeleted = 8,
dbEditNew = 16
} EditModeEnum;typedef enum LockTypeEnum {
dbPessimistic = 2,
dbOptimistic = 3,
dbOptimisticValue = 1,
dbOptimisticBatch = 5
} LockTypeEnum;typedef enum FieldAttributeEnum {
dbFixedField = 1,
dbVariableField = 2,
dbAutoIncrField = 16,
dbUpdatableField = 32,
dbSystemField = 8192,
dbHyperlinkField = 32768,
dbDescending = 1
} FieldAttributeEnum;typedef enum DataTypeEnum {
dbBoolean = 1,
dbByte = 2,
dbInteger = 3,
dbLong = 4,
dbCurrency = 5,
dbSingle = 6,
dbDouble = 7,
dbDate = 8,
dbBinary = 9,
dbText = 10,
dbLongBinary = 11,
dbMemo = 12,
dbGUID = 15,
dbBigInt = 16,
dbVarBinary = 17,
dbChar = 18,
dbNumeric = 19,
dbDecimal = 20,
dbFloat = 21,
dbTime = 22,
dbTimeStamp = 23
} DataTypeEnum;typedef enum ParameterDirectionEnum {
dbParamInput = 1,
dbParamOutput = 2,
dbParamInputOutput = 3,
dbParamReturnValue = 4
} ParameterDirectionEnum;typedef enum RecordStatusEnum {
dbRecordUnmodified = 0,
dbRecordModified = 1,
dbRecordNew = 2,
dbRecordDeleted = 3,
dbRecordDBDeleted = 4
} RecordStatusEnum;我以前遇到这种问题,就把Stdafx.h中的下面代码掉,就能解决这个问题。#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h> // MFC ODBC database classes
#endif // _AFX_NO_DB_SUPPORT#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT但是我添加进来的是别人的文件,我不能随便把上述语句掉。
请问各位兄弟姐妹有没有解决的办法?
#else
#define ENUM
typedef enum EditModeEnum {
dbEditNone = 0,
dbEditInProgress = 1,
dbEditAdd = 2,
dbEditChanged = 4,
dbEditDeleted = 8,
dbEditNew = 16
} EditModeEnum; typedef enum LockTypeEnum {
dbPessimistic = 2,
dbOptimistic = 3,
dbOptimisticValue = 1,
dbOptimisticBatch = 5
} LockTypeEnum; typedef enum FieldAttributeEnum {
dbFixedField = 1,
dbVariableField = 2,
dbAutoIncrField = 16,
dbUpdatableField = 32,
dbSystemField = 8192,
dbHyperlinkField = 32768,
dbDescending = 1
} FieldAttributeEnum; typedef enum DataTypeEnum {
dbBoolean = 1,
dbByte = 2,
dbInteger = 3,
dbLong = 4,
dbCurrency = 5,
dbSingle = 6,
dbDouble = 7,
dbDate = 8,
dbBinary = 9,
dbText = 10,
dbLongBinary = 11,
dbMemo = 12,
dbGUID = 15,
dbBigInt = 16,
dbVarBinary = 17,
dbChar = 18,
dbNumeric = 19,
dbDecimal = 20,
dbFloat = 21,
dbTime = 22,
dbTimeStamp = 23
} DataTypeEnum; typedef enum ParameterDirectionEnum {
dbParamInput = 1,
dbParamOutput = 2,
dbParamInputOutput = 3,
dbParamReturnValue = 4
} ParameterDirectionEnum; typedef enum RecordStatusEnum {
dbRecordUnmodified = 0,
dbRecordModified = 1,
dbRecordNew = 2,
dbRecordDeleted = 3,
dbRecordDBDeleted = 4
} RecordStatusEnum;
#endif
否则需要利用#ifdef 。。 #else 。。 #define #endif 了
如果要改变namespace,应该改成什么样子?