char에서 TCHAR로 라이브러리를 이식하고 있습니다. 이 단편의 count 매개 변수는 MSDN에 따라 바이트 수가 아닌 멀티 바이트 문자 수입니다. 그래서, 나는이 권리를 얻었 느냐? VC9의 프로젝트 속성은 '유니 코드 문자 세트 사용'이라고 말하지만 그것이 맞다고 생각합니다. 그러나 이것이 내 count 매개 변수에 어떻게 영향을 미치는지는 아닙니다. Windows 플랫폼 만 _mbsncmp 및 _mbsnbcmp에서 지원tchar 안전한 함수 - UTF-8 상수의 개수 매개 변수
_tcsncmp(access, TEXT("ftp"), 3); //or do i want _tcsnccmp?
는 "strncmp의 멀티 바이트 버전입니다. 대부분의 대부분의 카운트 바이트에 비교합니다 멀티 바이트 문자와 _mbsnbcmp 카운트에서 _mbsncmp가 비교합니다. 그들은 모두 현재의 멀티 바이트 코드 페이지를 사용합니다.
_tcsnccmp 및 _tcsncmp는 각각 _mbsncmp 및 _mbsnbcmp에 해당하는 일반 함수입니다. _tccmp는 _tcsnccmp와 같습니다. "
비슷한 질문은 _tcslen과 _tcsclen입니다.
그 점을 무시하지 않습니까? 주변의 코드가 사용하고 있기 때문에 tchar로만 이식 중입니다. 내가 선택의 여지가 있니? –
TCHAR은 포기해야하는 잘못된 노력이라는 심각한 믿음이 있습니다. 자세한 내용은 http://stackoverflow.com/questions/1049947/should-utf-16-be-considered-harmful을 참조하십시오. –
1995 년에 작성된 구문 분석 메소드를 이식하여 basic_string에서 작동합니다. 나는 파싱 로직이 멀티 바이트 문자에 민감 할 때 이것이 될 수 있다고 생각하기 시작했다. 나는이 함수에 UTF-8 바이트 배열을 전달하는 것이 매우 아름답다고 생각하지 않는다. –