2

私は DirectX 10 と C++ で小さなゲームを開発中ですが、さまざまな directx/win32 関数呼び出しに必要なさまざまな種類の文字列に悩まされています。

利用可能なさまざまな文字列のどれを使用するのが最適かを誰でも推奨できますか? これまでのところ、std::string と std::wstring を使用し、.c_str() 関数を実行して正しい形式に変換してきました。

すべての関数に渡すために使用する文字列を 1 種類だけ取得し、関数内でキャストしたいと考えています。

4

3 に答える 3

6

std::wstringこれまでとc_str()まったく同じように使用してください。Windows で使用する理由はありませんstd::string。コードは常にネイティブの UTF-16 エンコーディングを使用することもできます。

于 2012-01-24T19:05:56.927 に答える
3

私も固執しstd::wstringます。std::string本当にどこかに渡す必要がある場合でも、その場で変換できます。

std::string s = "Hello, World";
std::wstring ws(s.begin(), s.end());

逆の方法でも機能します。

于 2012-01-24T19:26:37.340 に答える
0

ネイティブ COM (のようなもの#import <type_library>)を使用している場合は、 _bstr_t. LPCWSTR と LPCSTR の両方にネイティブに型キャストし、COM のメモリ割り当てモデルとうまく調和します。.c_str()通話は必要ありません。

于 2012-01-24T19:13:55.520 に答える