[解決済み] 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::string
と
CString
が正しいシンボルであれば、両方ともUNICODEにすることができます。
#defined
のどちらかを選択することになります。
PWSTR
,
std::string
と
CString
は、好みの問題か、あるいはあなたが扱うコードベースの慣習の問題でしょう。
関連
-
[解決済み] std::string を const char* または char* に変換する方法
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaScriptで二重引用符と単一引用符はいつ使うべきですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] どうすれば、文字列中のリテラルな中抜き文字を印刷し、また.formatを使用することができるのでしょうか?
-
[解決済み] テキストファイルを文字列変数に読み込んで、改行を除去するには?
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error