需要将char *(指针)转换为wchar_t *(指针)

Zac*_*Zac 1 c++ qt pointers wchar-t char

我正在与计算机控制的泵进行一些串行端口通信,而我用来通信的createfile函数要求将串行端口名称解析为wchar_t指针。

我还使用QT创建表单并以QString形式获取com端口名称。

该QString转换为char数组,并指向如下:

   char* Dialog::GetPumpSerialPortNumber(){
   QString mystring;
   mystring = ui->comboBox_2->currentText();
   char * mychar;
   mychar = mystring.toLatin1().data();
   return mychar;
Run Code Online (Sandbox Code Playgroud)

现在,我需要设置端口号,该端口号以wchar_t *的形式存储在泵对象中。我通过调用以下函数来做到这一点:

   void pump::setPortNumber(wchar_t* portNumber){
       this->portNumber = portNumber;
   }
Run Code Online (Sandbox Code Playgroud)

因此,如何将我的char *(mychar)更改为wchar_t *(portNumber)?

谢谢。

lee*_*ade 5

如果您只需要将char数组添加到wchar_t数组,则可以使用以下解决方案:

static wchar_t* charToWChar(const char* text)
{
    size_t size = strlen(text) + 1;
    wchar_t* wa = new wchar_t[size];
    mbstowcs(wa,text,size);
    return wa;
}
Run Code Online (Sandbox Code Playgroud)