C++、WCHAR[] 到 std::cout 和比较

标签 c++ winapi wchar-t widechar

我需要将 WCHAR[] 放入 std::cout ... 它是从本地 Wifi API 回调传递的 PWLAN_CONNECTION_NOTIFICATION_DATA 的一部分。

我简单地尝试了 std::cout << var;但它打印出第一个字符的数字地址。比较 (var == L"some text") 也不起作用。调试器返回预期值,但比较返回 0。如何将此数组转换为标准字符串 (std::string)?

提前致谢

最佳答案

一些解决方案:

  • 改为写入 std::wcout
  • 转换:
    • 标准方式,使用 std::codecvt
    • Win32 方式,使用 WideCharToMultibyte

关于C++、WCHAR[] 到 std::cout 和比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1625531/

相关文章:

c++ - 是否有将 REFIID 转换为有用名称的操作系统功能?

c++ - Cpp 中的注册表处理

c - C 中的 ASCII 字符

c++ - 指向 map 的指针

c++ - 使用类 static const 整数初始化二维数组

c++ - 如何在另一个 DLL 的 DLL 上使用 `/DELAYLOAD`

c++ - #ifdef x64 不适用于 Windows 资源文件

c++ - 如何在不丢失数据的情况下将 wchar_t* 转换为 char*?

g++ - wcout 函数不打印法语字符

c++ - 如何从十六进制值缓冲区渲染矩形 SDL2 纹理?