我正在与计算机控制的泵进行一些串行端口通信,而我用来通信的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/