Question

Je portage une bibliothèque de char à TCHAR. le paramètre de comptage de ce fragment, selon MSDN, est le nombre de caractères multi-octets, et non le nombre d'octets. donc, ai-je ce droit? Mes propriétés du projet en dire VC9 'jeu de caractères unicode utilisation et je pense que c'est correct, mais je ne suis pas comment que mon impact paramètre de comptage.

_tcsncmp(access, TEXT("ftp"), 3); //or do i want _tcsnccmp?

"pris en charge sur les plates-formes Windows, les versions _mbsncmp et _mbsnbcmp sont multi-octets de strncmp. _Mbsncmp compare à la plupart des caractères nombre multi-octets et _mbsnbcmp comparera au plus nombre octets. Elles utilisent la page de code multi-octets.

_tcsnccmp et _tcsncmp sont les fonctions génériques correspondant à _mbsncmp et _mbsnbcmp, respectivement. _tccmp est équivalent à _tcsnccmp ».

Une question similaire est _tcslen vs _tcsclen.

Était-ce utile?

La solution

Oui, vous l'obtenez droit.

La question, cependant, est la raison pour laquelle le port ne vous à TCHAR -. Quelque chose qui est sensible à définir _UNICODE

Pourquoi ne pas utiliser UTF8 et char *?

Autres conseils

TCHAR est un type qui est soit 8 ou 16 bits selon que _UNICODE est définie. Mais UTF-8 toujours utilise des unités de code 8 bits, donc l'utilisation TCHAR est stupide. Il suffit d'utiliser char.

TCHAR est liée à l'existence de deux versions de l'API Windows: "A" fonctions que les pages legacy utilisation de code 8 bits, et "W" fonctions que l'utilisation UTF-16. UTF-8 est pas prise en charge . Vous pouvez utiliser UTF-8 sous Windows en convertissant explicitement vos chaînes de caractères UTF-8 en UTF-16 pour les appels API, mais vous ne recevrez aucune aide de _UNICODE ou TCHAR.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top