私は現在、DirectX に基づくプロジェクトに取り組んでおり、何かに苦労しています。LPSTR
DirectX SDK は、 、などの Windows データ型に大きく依存していますが、非常に扱いやすいLPCSTR
独自のクラスに使用してきましたが、文字列を処理する両方の方法を混在させるのは奇妙に見えます。std::string
これは漠然とした質問ですが、string
一貫性を保つために、さまざまな文字列型の s または Windows ポインターを使用する必要がありますか?
3 に答える
5
LPSTR
は単なるエイリアスでchar*
ありLCPSTR
、のエイリアスであるため、質問は実際には「C++文字列またはC文字列を使用する必要がありますか?」const char*
のように聞こえます。
C++には、(変更不可能な) C 文字列を返すstd::string
メンバー関数c_str()
(または STL 互換性のための同等の関数) があります。data()
したがって、関数が を受け入れるときはいつでもLPCTSTR
、 の出力をc_str()
引数として提供できます。
できる限りC++ を使用することをお勧めします。C++std::string
の方が安全です。
于 2013-01-31T21:12:50.077 に答える