我正在与计算机控制的泵进行一些串行端口通信,而我用来通信的createfile函数需要将com端口名称解析为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;

现在,我需要设置端口号,该端口号以wchar_t *的形式存储在泵对象中。我通过调用以下函数来做到这一点:
   void pump::setPortNumber(wchar_t* portNumber){
       this->portNumber = portNumber;
   }

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

谢谢。

最佳答案

如果您正在谈论仅需要将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;
}

关于c++ - 需要将char *(指针)转换为wchar_t *(指针),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3716249/

10-11 22:40