[개발/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' 카테고리의 다른 글
[개발/IE] BHO(Browser Helper Object)란? (0) | 2011.05.24 |
---|---|
[개발/컬럼] 개발자가 야근을 하면 회사가 발전할까? (0) | 2011.05.19 |
[개발] 프로그래밍의 분야, 개발자의 분류 (0) | 2011.05.18 |
[개발/컬럼] 개발 프로젝트의 단계별로 나타날 수 있는 Risk (0) | 2011.05.18 |
[개발/MFC] 문자열 변환 BSTR to CString, CString to BSTR, BSTR to char* (0) | 2011.05.12 |
댓글