c++ C#上的Qt事件回调

8yparm6h  于 2023-08-09  发布在  C#
关注(0)|答案(1)|浏览(150)

我有一个问题,不允许我从一个带有Qt的DLL中获取事件到C#上的程序。事件来了,但我需要强制窗口的事件队列,它们使用Application.doEvents()
对于回调函数,我使用了一个指针,它将数据发送到C#程序,并由以下方法捕获

public byte OnKpeDllEvent(int category, IntPtr pInfo)
    {
        KPE_EVENT_INFO Info = new KPE_EVENT_INFO();
        if (pInfo != IntPtr.Zero)
        {
            m_hInstance = pInfo;
            object struttura = Marshal.PtrToStructure(pInfo, typeof(KPE_EVENT_INFO));
            if (struttura != null)
                Info = (KPE_EVENT_INFO)struttura;
        } 
}

字符串
这个其他方法是我从另一个我保证有效的方法发送事件的地方

void KpeQTLibrary::onConnected() {
KPE_EVENT_INFO einfo{};

einfo.nLine = -1;
einfo.nSize = sizeof(KPE_EVENT_INFO);

if (m_pCallbackProc != NULL)
    m_pCallbackProc(KPE_EVENT::CONNECTED, &einfo);

qDebug() << KPE_EVENT::CONNECTED;
}


我希望我说得够清楚了

vxbzzdmp

vxbzzdmp1#

好了,我已经解决了我的问题,因为一些QT方法需要从主线程调用。
第一个月
Initialize()是我启动所有函数的主方法。

相关问题