1. ホーム
  2. c++

[解決済み] PWSTRとは何ですか?C++のchar*、std::string、CStringと比較して、なぜこの命名法を使用するのですか?

2022-02-07 10:50:58

質問

様々なc++のコードで、文字列の異なる使い方をよく見かけます。PWSTR, char*, std::string, CString, etc ....

他の文字列型と比較して、PWSTRを使用するのに最適なタイミングはいつですか?

どのように解決するのですか?

PWSTRであれば wchar_t 文字列ポインタです。 これはUNICODE(通常はUCS2)文字列で、各文字は16ビットをとります。

a char* は、1文字あたり8ビットのポインタです。これは、ASCII、ANSI、UTF8、または何百もの他のエンコーディングのうちの1つである可能性があります。ただし、エンコーディングを気にする必要があるのは、英語以外の言語や特殊な記号を文字列として保持する必要がある場合だけです。

一般に、WindowsのAPIは内部的にすべてUNICODEなので、ほとんどのWindowsプログラマはwchar文字列を使っています。 しかし std::stringCString が正しいシンボルであれば、両方ともUNICODEにすることができます。 #defined のどちらかを選択することになります。 PWSTR , std::stringCString は、好みの問題か、あるいはあなたが扱うコードベースの慣習の問題でしょう。