zoukankan      html  css  js  c++  java
  • QT -- 代码封装成库给C调用的问题

    记项目中遇到的一个问题。

    项目任务:

    将工业相机的取流、存图、显示、以及图像基本参数调整封装成纯C的库(.dll),给客户使用,那边用的是C,我们这边用C++写的,使用的是QT。

    遇到的问题:

    在QT环境下,将相机取流出来的帧m_Frame与信号槽连接后,就可以自由使用帧(用于显示和存图等),连接代码:

    connect(&Camera,&TCamera::SgalSendOriData,this,&Thread_Display::SlotGetFrame);

    在线程中直接取全局变量m_Frame做显示即可;做测试也是ok滴;

    然鹅:

    封成库后,用C来调用,线程中则显示没有帧...在线程中多加一句代码来调用一下槽函数获取帧之后,正常运行:

     SlotGetFrame(Camera.GetImgdata());//C里没有信号与槽的机制,所以这里要调用一下槽函数,来获取帧

    表明C中(或者是客户用的平台中)是不认可QT的信号槽机制的,只能通过调用函数实现功能。。(个人观点)

    另外:

    测试了信号槽帧原始数据传输效率与调用函数获取帧的效率,信号槽完胜。。

  • 相关阅读:
    在关闭窗体时弹出对话框
    使应用程序在进程中消失
    禁用窗口上的关闭按钮
    洛谷P1080 国王游戏
    洛谷P1443 马的遍历
    算法竞赛入门经典第二版 随笔1
    AcWing 794. 高精度除法
    AcWing 793. 高精度乘法
    AcWing 792. 高精度减法
    AcWing 791. 高精度加法
  • 原文地址:https://www.cnblogs.com/zzzsj/p/14597152.html
Copyright © 2011-2022 走看看