查看完整版本: [-- vc写的DLL接口如何向QT界面发送进度信息,感谢! --]

QTCN开发网 -> 《Qt高级编程》专栏 -> vc写的DLL接口如何向QT界面发送进度信息,感谢! [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

lanmengli 2017-04-28 13:38

vc写的DLL接口如何向QT界面发送进度信息,感谢!


      我这边用VC写的DLL接口,QT写的界面,QT采用多线程调用VC的接口,VC接口中需要向界面实时发送进度信息。这里不知道如何发送进度信息?
非常感谢!

dinjay 2017-08-09 16:11
通过回调的方式会好一些,vc接口里定义好设置回调函数的接口,qt里将回调函数指针设置进去,然后dll里每次通知更新进度时调用回调函数指针。qt里直接在回调函数中实现进度条的更新。

hytrao 2021-03-19 11:17
在vc里面使用postMessage将自定义消息传出,然后再qt主体程序中重写nativeEvent函数,在该函数接收windows自定义消息

bool EmbededWidget::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
        if (eventType == "windows_generic_MSG") //windows平台
        {
                MSG* msg = reinterpret_cast<MSG*>(message); //

                if(msg->message == WM_COPYDATA)//消息类型
                {
                        COPYDATASTRUCT *data = reinterpret_cast<COPYDATASTRUCT*>(msg->lParam);
                        QTextCodec *gbk = QTextCodec::codecForName("GB18030");
                        QString recevice = gbk->toUnicode((char *)(data->lpData));//转码

                        if(recevice.contains("Command="))
                        {
                           return true;//消息不再进行传递,不再处理
                        }

                        m_wnd = reinterpret_cast<HWND>(msg->wParam);//高地址的参数

                }
        }

        return QWidget::nativeEvent(eventType, message, result);//交给Qt处理
}



查看完整版本: [-- vc写的DLL接口如何向QT界面发送进度信息,感谢! --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled