将 QString 与 wchar_t 一起使用时无法解析的外部符号 [重复]

Unresolved external symbol when using QString with wchar_t [duplicate]

提问人:cbuchart 提问时间:6/4/2018 更新时间:6/4/2018 访问量:1976

问:

以下代码无法在 Visual Studio 中链接:

#include <qstring.h>

int main(int argc, char *argv[])
{
  const auto qstr = QString::fromWCharArray(L"Hello world!");

  auto wstr = new wchar_t[qstr.length() + 1];
  const auto wlen = qstr.toWCharArray(wstr);
  wstr[wlen] = L'\0';

  return 0; // 'wstr' not deleted for simplification
}

错误 LNK2019:函数 _main 中引用的未解析的外部符号“__declspec(dllimport) public: int __thiscall QString::toWCharArray(unsigned short *)const ”(__imp_?toWCharArray@QString@@QBEHPAG@Z)

错误LNK2019:未解析的外部符号“__declspec(dllimport) public: static class QString __cdecl QString::fromWCharArray(unsigned short const *,int)” (__imp_?fromWCharArray@QString@@SA?AV1@PBGH@Z) 在函数 _main 中引用

C++ Qt QString 未解析外部 wchar-t

评论


答:

4赞 cbuchart 6/4/2018 #1

项目设置为不被视为内置类型 ()。wchar_tNo /Zc:wchar_t-

enter image description here

更改该值以解决链接错误。它也适用于 和 。Yes /Zc:wchar_tQString::toStdWStringQString::fromStdWString


我正在记录我从旧项目迁移时通常会发现的这个问题。