TCHAR 과 을 사용 하지 마 세 요.T 됐어.

불행 하 게 도 제 가 지금 진행 하고 있 는 프로젝트 는 TCHAR 입 니 다. Liux 에 tchar. h 라 는 파일 이 없습니다. 저 는 머리 파일 에 가입 해 야 합 니 다.
#ifdef UNICODE

#define _T L##

#define _tprintf wprintf

#else

#define _T

#define _tprintf printf

#endif  //UNICODE

다음 내용 은 다음 과 같 습 니 다.http://blog.csdn.net/superarhow/article/details/1686053
한 형제 가 "한 항목 에 유 니 코드 를 사용 하지 않 는 것 은 재앙" 이 라 고 말 한 것 으로 기억한다.그 걸 믿 으 면 많은 사람들 이 인정 하 겠 지.
하지만 여기 서 말 하고 자 하 는 것 은 TCHAR, 을 사용 했다 고 생각 하지 마 세 요.T, LPCTSTR, LPTSTR 같은 가 변 매크로 는 유 니 코드 의 요 구 를 만족 시 키 는 프로젝트 입 니 다. 그것 은 때때로 ANSI 인 코딩 을 사용 하 는 것 보다 더 나쁘다.
우연히 TCHAR 의 충실 한 신봉 자 였 습 니 다. 어떤 프로젝트 에서 전체 공정 정의 에 성공 하 였 습 니 다유 니 코드 매크로 는 오류 경고 수준 없 이 성공 적 으로 컴 파일 할 수 있 습 니 다.그러나 짝 짓 기 프로젝트 를 ANSI 에서 UNICODE 로 바 꾸 려 고 할 때 우연히 발견:
1. 불 러 온 dll 은 함께 업그레이드 해 야 합 니 다.
2. 연 결 된 서버 쪽 은 함께 업그레이드 해 야 합 니 다.
3. 그 와 통신 하 는 클 라 이언 트 는 동시에 업그레이드 해 야 합 니 다.
4. 이것 은 가장 심각 한 것 입 니 다. 사용자 가 ANSI 버 전 으로 저장 한 파일 입 니 다. UNICODE 버 전에 서% $\ # ^ &! * 를 열 수 없습니다. 이것 은 업그레이드 할 때 사용자 의 자 료 를 반드시 전환 해 야 한 다 는 것 을 의미 합 니 다. 그렇지 않 으 면 모두 잃 어 버 릴 것 입 니 다!사용 자 는 당신 을 이해 하지 못 할 것 입 니 다!!
TCHAR 와 를 다시 보 겠 습 니 다.T 는 짝 들 에 게 어떤 좋 은 점 을 가 져 다 주 었 습 니까?그것 이 가 져 온 장점 은 유 니 코드 를 직접 사용 해도 가능 하 다.ANSI 의 모든 영어 문자 에 절 약 된 1 바이트 만 을 위해 이렇게 큰 위험 을 감수 해 야 하 는 것 일 까?수지 가 맞지 않 지!
자바 는 이 점 에서 아주 잘 한다. 어쨌든 새로운 언어 이기 때문이다.가끔 은 근무 시간 에 커피 를 마 시 는 프로그래머 를 좋아 하 지 는 않 지만 베테랑 이라는 것 을 부인 할 수 없다!(int 와 short 의 길이 제한 을 포함 하여 매우 뛰 어 납 니 다!)
따라서 프로젝트 가 TCHAR 를 사용 했다 면 축하합니다. 프로젝트 와 프로젝트 의 다음 항목, 그리고 모든 프로젝트 의 전체 생명 기 를 음 혼 처럼 동반 할 것 입 니 다. 마치 Windows 의 A 와 W 두 개의 API 처럼...
새로운 프로젝트 를 시작 하고 있다 면 어떻게 든 스트레스 를 견 디 고 유 니 코드 를 사용 하 십시오!명심 하 세 요!당신 은 팀 원 들 에 게 10 분 동안 교육 을 받 아야 합 니 다. strcpy 는 wcscpy, sprintf 는 swprintf 로 대체 하고 상수 전에 L 을 추가 하면 됩 니 다!그것 은 당신 에 게 많은 시간 을 들 이지 않 을 것 입 니 다. 당신 에 게 가 져 다 주 는 것 은 안정 과 안전 입 니 다!오빠 를 믿 어, 맞 아!!

좋은 웹페이지 즐겨찾기