MFC TIP

msado15.dll을 import하여 MFC로 DLL을 만들때 뜨는 형식 재정의 에러 해결 방법

띠리 2007. 5. 17. 21:08
msado15.dll을 import하여 MFC로 DLL을 만들때 빌드하면
아래와 같은 형식 재정의 에러가 뜬다.

오류 1 error C2011: 'LockTypeEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 228
오류 2 error C2011: 'DataTypeEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 276
오류 3 error C2011: 'FieldAttributeEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 321
오류 4 error C2011: 'EditModeEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 343
오류 5 error C2011: 'RecordStatusEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 352
오류 6 error C2011: 'ParameterDirectionEnum' : 'enum' 형식 재정의 d:\data\source\adll\adll\debug\msado15.tlh 616
오류 7 error C2065: 'adLockReadOnly' : 선언되지 않은 식별자입니다. d:\data\source\adll\adll\adll.cpp 101

위와 같은 에러가 뜨면 주저말고 stdafx.h 파일에 밑의 코드를 찾는다.

#ifndef _AFX_NO_DAO_SUPPORT

#include <afxdao.h>            // MFC DAO 데이터베이스 클래스입니다.

#endif // _AFX_NO_DAO_SUPPORT


위의 코드를 밑의 코드처럼 커맨트 처리하고 다시 리빌드하면 재정의 에러는 없어진다.
afxdao.h에도 같은 정의가 되어있나보다.

//#ifndef _AFX_NO_DAO_SUPPORT

//#include <afxdao.h>            // MFC DAO 데이터베이스 클래스입니다.

//#endif // _AFX_NO_DAO_SUPPORT