2010-06-03 2 views
2

LPWSTR/WCHAR 대신 LPTSTR/TCHAR 유형 등을 사용하는 방법에 대한 조언을 볼 수 있습니다. 나는 유니 코드가 Win2k에서 잘 소개되었다고 생각하며 솔직히 Windows 98 용 코드를 작성하지 않습니다. (물론 특수한 경우는 제외하고) Windows 98 (또는 ME)이 10 년 이상 된 OS에 대해 신경 쓰지 않는다면 호환성을 사용할 이유가 있습니까? TCHAR 등의 유형이 있습니까? 왜 여전히 사람들에게 TCHAR을 사용하도록 조언하는가? WCHAR을 직접 사용하면 어떤 이점이 있습니까?* Win32 API 호출은 여전히 ​​관련이 있습니까?

+1

http://stackoverflow.com/questions/234365/is-tchar-still-relevant와 유사 – dan04

+0

나는 개발자들이'TCHAR'을 사용하여 제안하는 것을 보지 못했습니다. 그러나 나는 일관성있는 제안을하는 개발자를 보았습니다. 제네릭 API 버전 (예 :'CreateFile')을 호출하면 일관성이 있어야하며 'LPCTSTR'을 전달해야합니다. 그것들을 혼란스럽게하지 않으시겠습니까? – IInspectable

답변

1

사람이 char 대신 wchar_t 또는 TCHAR 또는 WCHAR이, 당신은 더 나은 비 유니 코드는 Win32 API에 대처하기 위해 준비했다의를 사용하여 선언 듬뿍, 비 _UNICODE C++의 100 개 라인에 걸어 할 것을 요구하면. 대규모로 전환하는 것은 비용이 많이 들며 출처 - 돈을 지불 할 준비가되어 있지 않을 수도 있습니다. 새로운 코드로

는, 음, 잘라 내기 및 붙여 넣기 쉽게 할 수 TCHAR을 사용하여 거기에 너무 많은 예제 코드가, 그리고 wchar_tunsigned shortWCHARWCHAR 사이에 마찰이 어떤 경우가있다.

MS는 TCHAR에 UTF-32 데이터 형식을 추가 할 예정입니다.

+0

TCHAR 확장 가능성에 대한 흥미로운 점. UTF-32는 실제 텍스트의 거의 모든 부분에 상당히 많은 공간을 차지할 것으로 보입니다. HTML5는이를 인코딩으로 완전히 거부합니다. – kibibu

+0

@kib UTF-32 코멘트는 유머러스하기로되어 있습니다. – bmargulies

+0

@bmargulies 죄송합니다./ – kibibu

0

실제로 유니 코드 버전의 기능은 Windows NT 3.1이 설치된 1993 년 Win32에서 도입되었습니다. 사실, NT 기반 오아시스에서는 거의 모든 * A 함수가 유니 코드로 변환하고 내부적으로 * W 버전을 호출합니다. 또한 9x에서 * W 기능에 대한 지원은 Microsoft Layer for Unicode을 통해 존재합니다.

새 프로그램의 경우 TCHAR 매크로 또는 WCHAR을 직접 사용하는 것이 좋습니다. 나는 MS가 NT의 평생 동안 다른 캐릭터의 크기에 대한 지원을 추가하는 것을 의심한다. 기존 코드베이스의 경우 유니 코드를 지원하는 것이 얼마나 중요한지에 달려 있다고 생각합니다. * A 함수는 이전 버전과의 호환성을 위해 Win32에 영원히 머무를 필요가 있습니다.

관련 문제