디버깅 편의를 위하여
#define __T_PRINT(val) val.Print(__FUNCTION__, __FILE__, __LINE__)
과 같이 이용하고 있습니다. 매번 __FUNCTION__, __FILE__을 명시하기 귀찮아서...
멀티바이트로 컴파일시에는 문제가 없으나 유니코드로 컴파일시에는
#define __T_PRINT(val) val.Print(__FUNCTION__, __FILE__, __LINE__)
과 같이 이용하고 있습니다. 매번 __FUNCTION__, __FILE__을 명시하기 귀찮아서...
멀티바이트로 컴파일시에는 문제가 없으나 유니코드로 컴파일시에는
error C2664: 'CTimeCounter::Print' : 매개 변수 1을(를) 'const char [26]'에서 'CString'(으)로 변환할 수 없습니다.
와 같이 오류가 발생하네요
#define __T_PRINT(val) val.Print(_T(__FUNCTION__), _T(__FILE__), __LINE__)
혹은
#ifdef _UNICODE #define WIDEN(x) L ## x #define WIDEN2(x) WIDEN(x) #define __WFILE__ WIDEN2(__FILE__) #define __WFUNCTION__ WIDEN2(__FUNCTION__) #else #define __WFILE__ __FILE__ #define __WFUNCTION__ __FUNCTION__ #endif
와 같이 변경하여 사용해야 컴파일시 오류가 발생하지 않습니다.
_T()를 역추적하면...
#define __T(x) L ## x
#define _T(x) __T(x)
라고 되어있네요.
#define __WFUNCTION__ L ## __FUNCTION__
와 같이 바로 L ## x 로 변경시
error C2065: 'L__FUNCTION__' : 선언되지 않은 식별자입니다.
와 같은 오류가 나는것으로 봐서는 전처리 순서때문에 생기는 문제 같네요.
다국어 처리를 위한 Unicode변환.. 생각보다 손이 많이 가진다는..
_T()를 역추적하면...
#define __T(x) L ## x
#define _T(x) __T(x)
라고 되어있네요.
#define __WFUNCTION__ L ## __FUNCTION__
와 같이 바로 L ## x 로 변경시
error C2065: 'L__FUNCTION__' : 선언되지 않은 식별자입니다.
와 같은 오류가 나는것으로 봐서는 전처리 순서때문에 생기는 문제 같네요.
다국어 처리를 위한 Unicode변환.. 생각보다 손이 많이 가진다는..
"프로그래밍 / Visual C" 분류의 다른 글
[MFC] HttpOpenRequest 이용시 0xC0000005: 0xcccccccc 오류 (0) | 2014/03/04 |
[MFC] modal dialog(모달 대화상자) 숨긴채로 시작하기 (0) | 2014/03/04 |
[MFC] 프로세스 파일 경로 (0) | 2013/09/24 |
[MFC] OpenSSL Visual Studio 2008에서 컴파일 및 설치 하기 (0) | 2009/05/11 |
[MFC] Visual Studio 2008에서 zlib 1.2.3 컴파일 (0) | 2009/04/21 |
IE8설치후 VS2008 스크립트 오류 문제 (4) | 2009/03/31 |
데이크스트라 알고리즘(Dijkstra algorithm) (2) | 2008/12/29 |
Microsoft Office 2007 연동 (1) | 2008/06/04 |
GDI+에서 Round Rectangle 그리기. (0) | 2008/03/14 |
MulDiv (0) | 2007/12/12 |