关于c与qt界面连接的思路,--工作总结

来源:互联网 发布:linux内核移植教程 编辑:程序博客网 时间:2024/05/01 13:28
 
 
把后台分析IP的C程序与QT界面连接起来:
1. 用designer设计界面,生成form.ui文件
 
2. 利用qt-x11-2.3.2提供的uic生成form.h和form.cpp:
 
1) 设置坏竟环境变量:
QTDIR=/s3c2410_linux/QT/qt-x11-2.3.2
PATH=$QTDIR/bin:$PATH
LD_LIBRARY_PATH=$QTDIR/lib:$ LD_LIBRARY_PATH
Export QTDIR PATH   LD_LIBRATY_PATH
 
     2)   /s3c2410_linux/QT/ qt-x11-2.3.2/bin/uic –o form.h form.ui
          /s3c2410_linux/QT/ qt-x11-2.3.2/bin/uic –o form.cpp –I form.h form.ui
3.修改程序,把C程序的主函数换成一个槽,与界面对应信号连接:
     void Form:: find()
{
    if (!nids_init())
     /* Libnids初始化 */
    {   char s[100];
        sprintf("出现错误:%s/n", nids_errbuf);
        text->setText(s);
        exit(1);
    }
    nids_register_tcp((void *)http_protocol_callback);
    /* 注册回调函数 */
    nids_run(); /* 进入循环捕获数据包状态 */
}
 且C程序的主函数调用的函数都要在头文件中声明,在.cpp文件中定义,注意有几处要修改的地方:
1) 在.h文件中加:
Extern “C”
   {
          #include”nids.h”
   }
        #include<sys/types.h>
        #include<sys/socket.h>
        #include<netinet/in.h>
        #include<netinet/in_systm.h>
        #include<arpa/inet.h>
        #include<string.h>
        #include<stdio.h>
        #include<stdib.h>
        #include<ctype.h>
 2)下面的函数是在.cpp文件中这样声明的!:
     char ascii_string[10000];
char * form;;char_to_ascii(char ch)
{
    char *string;
    ascii_string[0] = 0;
string = ascii_string;
 …….
}
3回调函数不做为界面类的成员函数,而是单独的函数,且要做修改:
       Void ip_callback(struct ip *a_packet,int len)
        {
                 Form ip_protocol;
                 Ip_protocol.ip_protocol_packet_callback((u_char*)a_packet);
}
4添加main函数。
5.5.利用tmake提供的progen,tmake工具生成Makefile:
          1)先设置环境变量:
              TMAKEDIR=/s3c2410_linux/QT/tmake
              TMAKEPATH=$TMAKEDIR/lib/linux-g++
              PATH=$TMAKEDIR/bin:$PATH
              export TMAKEDIR TMAKEPATH PATH
           2)progen生成工程文件:
                Progen –n http –o http.pro
 3)   tmake生成Makefile:
     Tmake http.pro –o Makefile
6.Makefile也要添加如下内容:
       INCOATH项添加 –I /usr/include
       LIBS项加 -L /usr/libs –lpcap –lnet
7.Make
    编译通过了!可惜功能未知。
 
 
原创粉丝点击