首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

qt 与c程序通信有关问题

2013-02-15 
qt 与c程序通信问题我用qProcess 启动了一个外部c程序 这个c程序是录像的,现在需要c程序将采集的buf传给qt

qt 与c程序通信问题
我用qProcess 启动了一个外部c程序 这个c程序是录像的,现在需要c程序将采集的buf传给qt程序 用qt程序来实现实时截图功能 不知道各位大牛们有什么好的实现办法没!怎么才能把c程序的buf传给qt呢  qt c
[解决办法]
我只能大致给你下思路了:
首先在C语言里面定义一个消息队列,然后发送消息.
定义:

key=ftok(IPC_KEY_PATH, DISP_BLDC_MSG_PROJ_ID);//建立ipc通信
if(key==-1)
{
perror("comm_if:cannot generate IPC key");
exit(1);
}
DPRINTF("proj_id %d key %d\n",DISP_BLDC_MSG_PROJ_ID,key);
msqid=msgget(key,IPC_CREAT
[解决办法]
0777);
if(msqid == -1)
{
perror("comm_if:cannot create message queue");
exit(1);
}

以上是定义,定义之后,便可以发送消息了:
msgsnd(msqid, &msg_info, (sizeof(bldc_msg_t) - sizeof(long)),0);

如上是发送消息,那么在Qt这边的代码里,可以创建一个线程类,线程run起来之后,使用一个while循环,监听从串口传过来的消息:

void msgthread::run() {
    while(1) {
        if((n = msgrcv(mid,&msg,(sizeof(bldc_msg_t)-sizeof(long)),BLDC_DISP_MSG_TYPE,IPC_NOWAIT)) != -1 ) {
              .............处理函数.........
            }
    }
}

引用:
大神啊 那你现在还有qt用消息队列跟c通信的例子吗 学学!谢谢了

引用:消息队列?我用过消息队列来在Qt跟C之间通信.

热点排行