Frage

Ich portiere eine Bibliothek von STOR nach TCHR. Der Zählparameter dieses Fragments ist laut MSDN die Anzahl der Multibyte -Zeichen, nicht die Anzahl der Bytes. Also, habe ich das richtig verstanden? Meine Projekteigenschaften in VC9 sagen "Verwenden Sie den Unicode -Zeichensatz" und ich denke, das ist richtig, aber ich bin nicht so, wie sich dies auf meinen Zählparameter auswirkt.

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

"Nur auf Windows -Plattformen unterstützt, _mbsncmp und _mbsnbcmp sind Multibyte -Versionen von STRNCMP.

_tcsnccmp und _tcsncmp sind die entsprechenden generischen Funktionen für _mbsncmp bzw. _mbsnbcmp. _tccmp entspricht _tcsnccmp. "

Eine ähnliche Frage ist _tcslen vs _tcsclen.

War es hilfreich?

Lösung

Ja, du machst es richtig.

Die Frage ist jedoch, warum Sie es auf TCHRE verändern - etwas, das empfindlich gegenüber _unicode definiert ist.

Warum nicht UTF8 und Char*verwenden?

Andere Tipps

TCHAR ist ein Typ, der entweder 8 oder 16 Bit ist, je nachdem, ob _UNICODE ist definiert. Aber UTF-8 stets Verwendet 8-Bit-Code-Einheiten TCHAR ist albern. Benutz einfach char.

TCHAR ist an die Existenz von zwei Versionen der Windows-API gebunden: "A" -Funktionen, die Legacy 8-Bit-Code-Seiten verwenden, und "W" -Funktionen, die UTF-16 verwenden. UTF-8 wird nicht unterstützt. Sie können UTF-8 unter Windows verwenden, indem Sie Ihre UTF-8-Zeichenfolgen explizit für API-Anrufe in UTF-16 konvertieren. Sie erhalten jedoch keine Hilfe von _UNICODE oder TCHAR.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top