4

私は現在、DirectX に基づくプロジェクトに取り組んでおり、何かに苦労しています。LPSTRDirectX SDK は、 、などの Windows データ型に大きく依存していますが、非常に扱いやすいLPCSTR独自のクラスに使用してきましたが、文字列を処理する両方の方法を混在させるのは奇妙に見えます。std::stringこれは漠然とした質問ですが、string一貫性を保つために、さまざまな文字列型の s または Windows ポインターを使用する必要がありますか?

4

3 に答える 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 に答える