質問

CharからTcharにライブラリを移植しています。 MSDNによると、このフラグメントのカウントパラメーターは、バイト数ではなくマルチバイト文字の数です。それで、私はこれを正しく理解しましたか? VC9の私のプロジェクトプロパティは「Unicode文字セットを使用」と言っていますが、それは正しいと思いますが、それがカウントパラメーターにどのような影響を与えるかではありません。

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

「Windowsプラットフォームのみでサポートされている_MBSNCMPと_MBSNBCMPは、Strncmpのマルチバイトバージョンです。_MBSNCMPはほとんどのカウントマルチバイト文字で比較され、_MBSNBCMPはほとんどのカウントバイトで比較されます。どちらも現在のマルチバイトコードページを使用します。

_TCSNCCMPと_TCSNCMPは、それぞれ_MBSNCMPと_MBSNBCMPの対応する汎用関数です。 _TCCMPは_TCSNCCMPに相当します。」

同様の質問は、_tcslen vs _tcsclenです。

役に立ちましたか?

解決

はい、あなたはそれを正しくします。

しかし、問題は、なぜそれをtcharに移植するのかということです。これは、_unicodeに敏感なものです。

UTF8とchar*を使用してみませんか?

他のヒント

TCHAR 8つまたは16ビットのいずれかであるかどうかに応じて、 _UNICODE 定義されています。しかし、UTF-8 いつも 8ビットコードユニットを使用するため、使用します TCHAR 愚かです。使用するだけです char.

TCHAR Windows APIの2つのバージョンの存在に関連付けられています:「A」は、レガシー8ビットコードページを使用する機能、およびUTF-16を使用する「W」関数です。 UTF-8はサポートされていません. 。 API呼び出しのためにUTF-8文字列をUTF-16に明示的に変換することにより、WindowsでUTF-8を使用できますが、 _UNICODE また TCHAR.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top