读书人

qt 与c程序通信有关问题

发布时间: 2013-02-15 15:46:56 作者: rapoo

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之间通信.

读书人网 >QT开发

热点推荐