在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??"

然后就彻底懵逼啦。

~求助~

阅读 3.7k
1 个回答

两边环境用的字符集不一样吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题