4

我有一个 OLECHAR* 并且我想将它转换为 CHAR* 以便从中创建字符串,但我没有找到一种方法。

OLECHAR 是常规字符吗?没有它的想法。

在此先感谢,加尔。

4

2 回答 2

4

OLECHAR是一串wchar_t字符。我推荐阅读The 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_UTF8如果要从 UTF-16 转换为 UTF-8,可以使用“代码页”值。对于(可能有损的)“ANSI”转换,您可以使用CP_ACP等。

(上述 Win32 API也有方便的 ATL 包装器CW2A,例如,但我不确定这些包装器的 VC6 版本中可用的功能级别。)

于 2013-01-30T18:03:35.287 回答