4

私は OLECHAR* を持っていて、そこから文字列を作成するために CHAR* に変換したいのですが、それを行う方法が見つかりませんでした。

OLECHAR は通常の char ですか? それのアイデアはありませんでした。

前もってありがとう、ギャル。

4

2 に答える 2

4

OLECHAR文字列ですwchar_tThe Complete Guide to C++ Strings, Part II - String Wrapper Classes を読むことをお勧めします。

于 2013-01-30T14:45:32.050 に答える
2

OLECHAR*Unicode (UTF-16)wchar_t文字列です。文字列に変換する場合CHAR*は、変換に使用する特定のエンコーディングを明確にする必要があります。

たとえば、UTF-16 から UTF-8 (非損失変換) に変換したい場合、UTF-8 文字列をchar*/に格納できますstd::string(私は、C++ で生のポインターではなく堅牢な文字列クラスを使用することを好みます)。コード)。

変換を実行するには、WideCharToMultiByte()Win32 API を使用できます。CP_UTF8UTF-16 から UTF-8 に変換する場合は、「コード ページ」の値を使用できます。(損失の可能性がある) "ANSI" 変換の場合はCP_ACP、 などを使用できます。

(前述の Win32 API のような便利な ATL ラッパーもありますがCW2A、これらのラッパーの VC6 バージョンで利用できる機能のレベルはわかりません。)

于 2013-01-30T18:03:35.287 に答える