천객만래 [千客萬來] (It has an interminable succession of visitors)

[개발/VC] xdebug, xlocale 관련 error

컴파일이나 빌드를 하면 xdebug, xlocale 관련 에러가 무지하게 많이 발생하는 경우가 생긴다.


이 에러는 다음과 같이 해결할 수 있다.

단 번에 해결이 안되더라도 꼼꼼하게 소스파일을 찾아서 수정해야한다.


#ifdef _DEBUG

#define new DEBUG_NEW

#endif


항상 .cpp 파일에서 위의 3줄 위에 #include 나 #pragma comment(lib, ...)를 선언해야 한다

Posted by SB패밀리

[개발/VC] xdebug, xlocale 관련 error

컴파일이나 빌드를 하면 xdebug, xlocale 관련 에러가 무지하게 많이 발생하는 경우가 생긴다.

이 에러는 다음과 같이 해결할 수 있다.
단 번에 해결이 안되더라도 꼼꼼하게 소스파일을 찾아서 수정해야한다.

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

항상 .cpp 파일에서 위의 3줄 위에 #include 나 #pragma comment(lib, ...)를 선언해야 한다.


쌈꼬쪼려 소백촌닭
Posted by SB패밀리

[개발/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 

 
 

Posted by SB패밀리