[개발/MFC] error C2665: 'operator new' : 5개의 오버로드 중 ...
Visual Studio VC++ 작업중 (MFC)
디버깅 모드로 컴파일 중에 아래와 같은 에러 메시지가 나오는 경우가 발생할 수 있다.
그런데 에러의 위치를 찾을 수가 없다. 아래 메시지를 더블 클릭하면 xmemory.h 파일로 이동을 한다.
error C2665: 'operator new' : 5개의 오버로드 중 모든 인수 형식을 변환할 수 있는 오버로드가 없습니다.
이 에러에 대해서 대처할 수 있는 방법은
아래와 같다.
MFC와 STL 사이에 문제로 생각된다.
MFC에서 클래스를 만들면 파일 위쪽에 아래와 같은 코드가 자동으로 만들어 진다.
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
이 코드에서 발생하는 문제였다.
디버그 모드에서는 new DEBUG_NEW 에서 문제가 되는 것 같다.
해결 방법은 위의 디버그 관련 코드보다 먼저 STL관련 인클루드(#include ...)를 시켜주면 된다.
예를 들자면
#include <vector>
#include <mysystem.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
반응형
'IT-개발,DB' 카테고리의 다른 글
[개발/VC] xdebug, xlocale 관련 error (0) | 2012.02.29 |
---|---|
[개발] 자기자신을 삭제하기 (0) | 2012.02.22 |
[개발] Charset and CodePage 정리표 (0) | 2012.02.16 |
[IT/개발] 영업에 간섭하지 말라고? (0) | 2012.02.09 |
[개발/MFC] VARIANT, BSTR, SAFEARRAY C++ Tutorial (0) | 2012.02.07 |
댓글