这是我qt端写的代码
bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
Q_UNUSED(eventType);
MSG* msg = reinterpret_cast<MSG*>(message);
if(msg->message == 12333)
{
qDebug() << "msg received";
qDebug() << QString((char*)msg->lParam);
}
return false;
}
vb端的代码是
SendMessage Hwnd, 12333, 1, "仲夏节快乐"
qt端输出的结果
msg received
"\u0014??\u0002"
msg received
"rgEci5QChar"
msg received
"I"
msg received
"\u0014??\u0002"
懵逼了,查过网上说的解决方案是:
bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
Q_UNUSED(eventType);
MSG* msg = reinterpret_cast<MSG*>(message);
if(msg->message == 12333)
{
qDebug() << "msg received";
wstring ws = (LPCTSTR)msg->lParam;
QString qsTest = QString::fromStdWString(ws);
qDebug() << qsTest;
}
return false;
}
然而输出结果
msg received
"华?彟硣??戲獡捩獟牴湩?卷?挱慨彲牴楡獴睉卅??慅???_?\u0002愁\\氀\\??\u0002??"
msg received
"华?彟硣??戲獡捩獟牴湩?卷?挱慨彲牴楡獴睉卅??慅???_?\u0002愁\\氀\\??\u0002??"
msg received
"华?彟硣??戲獡捩獟牴湩?卷?挱慨彲牴楡獴睉卅??慅???_?\u0002愁\\氀\\??\u0002??"
然后就彻底懵逼啦。
~求助~
两边环境用的字符集不一样吧