无法从 wchar_t 构造 wstring

Can't construct a wstring from a wchar_t

我有一个名为 LOGFONT 的结构,我使用了 Windows headers

typedef struct tagLOGFONTW
{ LONG              lfHeight;
  LONG              lfWidth;
  LONG              lfEscapement;
  LONG              lfOrientation;
  LONG              lfWeight;
  BYTE              lfItalic;
  BYTE              lfUnderline;
  BYTE              lfStrikeOut;
  BYTE              lfCharSet;
  BYTE              lfOutPrecision;
  BYTE              lfClipPrecision;
  BYTE              lfQuality;
  BYTE              lfPitchAndFamily;
  WCHAR             lfFaceName[LF_FACESIZE];
} LOGFONTW, *PLOGFONTW, *LPLOGFONTW;

typedef __AW_ALIAS__(LOGFONT), *PLOGFONT, *LPLOGFONT;

我正在尝试从该结构的成员 lfFaceName 构建一个 std::wstring,如下所示,

std::wstring test(font.lfFaceName);

但是,编译失败,

error: no matching function for call to 'std::__cxx11::basic_string<wchar_t>::basic_string(const CHAR [32])'

我可以通过将以下内容添加到我的 CMakeFile 来解决这个问题,

target_compile_definitions(TargetName PRIVATE -DUNICODE -D_UNICODE)