在vb里通过sendmessage给Qt传输字符串,Qt该怎么处理呢?

发布于 2022-09-05 09:05:21 字数 1388 浏览 18 评论 0

这是我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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月竹挽风 2022-09-12 09:05:21

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文