gpt4 book ai didi

c++ - WinAPI LPWSTR,C++11 u16string?

转载 作者:太空狗 更新时间:2023-10-29 20:44:50 24 4
gpt4 key购买 nike

如果我正在为 Windows 开发并且一些 WinAPI 函数要求我使用 LPWSTR 作为字符串数据类型。可以在我的库中使用 C++11 的 u16string 吗?这两种数据类型是一回事吗?

它看起来更像是 LPWSTR 是 wchar_t,但没人再喜欢 wchar_t 了......

最佳答案

C++11 char16_t 类型不同于 wchar_t。理论上,您可以在 char16_t* 和 Windows 的 wchar_t* 之间reinterpret_cast(Windows 的 wchar_t 是 16 位).然而,在实践中,Visual C++ 10.0——我认为 Visual C++ 11.0——缺乏对 Unicode 文字的支持,例如 u'A'u"A"

总结(我发现在 SO 上应该更好地使所有结论明确):

  • “可以在我的库中使用 C++11 的 u16string 吗?”
    当然可以,但不能作为 wchar_t 字符串的直接插件替代品,截至 2012 年,如果您计划支持 Visual C++,则目前存在问题(由于缺乏对文字的支持)。

  • “这两种数据类型是一回事吗?”
    不是。

  • “没有人再喜欢 wchar_t 了……”
    当然不是这样。

关于c++ - WinAPI LPWSTR,C++11 u16string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12101669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com