Notice»

Recent Post»

Recent Comment»

Recent Trackback»

Archive»

« 2024/11 »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

멀티바이트 형식으로 작성된 소스를 유니코드 형식에서 컴파일할 때, LPCTSTR -> char* 의 형변환 캐스팅에서 에러가 난다. 이를 해결해보자.


그림 1. inet_addr() 의 파라미터는 const char* 데이터 형식을 받는다.


그림 2. 파라미터 값으로 CString(LPCTSTR) 데이터 형식을 집어넣으면


그림 3. 다음과 같이 컴파일 에러가 생긴다. 멀티바이트 환경에서는 문제 없이 형식캐스팅이 되지만, 유니코드 환경에서는 형변환을 해주어야 한다.


CT2A 매크로를 이용하여 형변환을 해준다.

참고로 종류가 여러가지가 있다.

CW2A - WCHAR 를 멀티바이트로 만들 때 사용

CT2A - TCHAR 를 멀티바이트로 만들 때 사용 

CA2T - 멀티바이트를 TCHAR 로 만들 때 사용

CA2W - 멀티바이트를 WCHAR 로 만들 때 사용

그림 4. 다음과 같이 사용하면, 유니코드 환경에서 컴파일 에러 없이 형변환이 가능하다.


: