我使用以下代码行分配com端口:
const wchar_t* mccommport = L"COM5";
如果需要使用的话,我可以打电话给mccommport。这很完美。但是,我现在想从标签中拉出要使用的COM端口。我怎样才能做到这一点?换一种说法:
QString mccommport_string = ui->label_commport->text(); //Value here is COM5
const wchar_t* mccommport = mccommport_string ; //????? obviously this doesn't work.
我该如何完成以上工作?
我尝试了以下操作,但未成功:
wchar_t array[5];
QString mccommport_string = "COM5"
mccommport_string.toWCharArray(array);
const wchar_t* mccommport = array;
const wchar_t* mccommport2 = L"COM5";
qDebug() << mccommport_string << mccommport << mccommport2;
它提供的qDebug输出为:
"COM5" 0x15cd542 0xe814a2
如果我尝试使用mccommport2与串行端口通信,则可以使用,如果我尝试使用mccommport,则无法使用。我是C ++的新手,所以不确定这些是否应该相同...任何帮助将不胜感激。
最佳答案
将QString
数据放入const wchar_t*
的更简单方法是使用toStdWString()
方法:
QString mccommport_string = "COM5";
std::wstring com5_str(mccommport_string.toStdWString());
const wchar_t* mccommport = com5_str.c_str();
L在“ COM5”前面做什么?
它表示wide string literal。
关于c++ - 在C++中将值从String输入到wchar变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41490718/