将QString与wchar_t一起使用时未解析的外部符号

时间:2018-06-04 10:24:53

标签: c++ qt qstring unresolved-external wchar-t

以下代码无法在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:未解析的外部符号&#34; __ declspec(dllimport)public:int __thiscall QString :: toWCharArray(unsigned short *)const&#34; (__imp_?toWCharArray @ QString @@ QBEHPAG @ Z)在函数_main中引用

     

错误LNK2019:未解析的外部符号&#34; __ declspec(dllimport)public:静态类QString __cdecl QString :: fromWCharArray(unsigned short const *,int)&#34; (__imp_?fromWCharArray @ QString @@ SA?AV1 @ PBGH @ Z)在函数_main中引用

1 个答案:

答案 0 :(得分:1)

该项目设置为不将wchar_t视为内置类型(No /Zc:wchar_t-)。

enter image description here

将值更改为Yes /Zc:wchar_t可解决链接错误。它也适用于QString::toStdWStringQString::fromStdWString

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