在vb里通过sendmessage给Qt传输字符串,Qt该怎么处理呢?
这是我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??"
然后就彻底懵逼啦。
~求助~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
两边环境用的字符集不一样吧