当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 嗯.开头之前呢.我先把我对Event机制简单说一下. Even
 

 

 ·ip phone日志1    »显示摘要«
    摘要:个人想做一个linux下的ip phone,找了一些sip资料,发现这协议够大,看osip项目都做了一两年,我也觉得难度太高,但想想难度高才有挑战嘛,自我安慰,呵呵.第一步我想开始熟悉linux下的进程通讯, 预想有socket, pipe,queue,sigaction等要先掌握.先不做服务器, 以两个客户程序user agent通信为主.划分几个模块: 1.socket处理模块 2.信令解析模......
 ·用visual c++.net实现xml解析    »显示摘要«
    摘要:对于多数开发者来说,web服务已经成为某种固定不变的东西了,因为他们把internet看作是促进应用程序应用的最好途径。一些web服务(例如amazon.com web服务)是公共的,并且很容易被要求把这种服务包含在应用程序中。其它一些web服务是私有的,并且需要访问的特定知识。无论涉及哪种web服务,他们都依赖xml传递数据。因此,在提到web服务的时候,xml解析是开发者想到的第一件事。全文阅......


编写跨平台的进程内Event事件驱动
       嗯.开头之前呢.我先把我对event机制简单说一下.

       event也就是事件,典型的就是windows的消息,我们写windows程序时就会经常碰到这种消息: 【程序编程相关:C#学习日记 - 2004/11/04

【推荐阅读:微软英特尔首度联手作广告

sendmessage(hwnd.....)以及经典的switch(),通过事件机制,进程内部的通信就变得轻松了,相比之下.unix就没有这么方便了.虽然有msgget以及msgsnd之类的消息队列函数,但在win32可没有这类的函数哦. 【扩展信息:SQL Server 7.0 入门(八)

       所以呢.如果想写一些跨平台的程序,经常就要借助第三方的库比如qt或wxwindow之类的,不过我可不太喜欢一个程序就带一个很大的库,如果是gui还好.如果是命令行的...嘿嘿.你就要装x还有gtk等等,编译几个小时没有问题的. 所以我们就写一个简单的进程内的事件驱动实现,省得带这么大的库.

      

      进程内的事件驱动主要是三部分,一是定义事件,二是准备接收事件.三是响应事件.事件的执行顺序就是按照fifo的原则了,结构当然是选用简单的栈队列了.

typedef struct tagqinn qinn;

typedef struct taginn inn;

typedef struct tagqinnvtbl {

        void     (*push)(qinn *self,void *data);

        void     *(*pop)(qinn *self);

        void     (*release)(qinn *self);

}qinnvtbl;

struct taginn

{

        void *data;

        struct taginn *pnext;

};

struct tagqinn

{

        inn *phead;

        inn *ptail;

        qinnvtbl *lpvtbl;

};

// 这种结构可以在chamoro.tar.gz中找到.

就提供两个函数.pop以及push,这样就可以实现事件的响应了

另外,我们的进程内事件就叫qevent吧.我们先看看结构

typedef struct tagqevent qevent;

typedef struct qeventvtbl {

        int      (*eventstart) (qevent *self);

        int      (*addevent) (qevent *self ,int event,void (*eventfuc)(void *));

        int    (*sendevent) (qevent *self,int event,void *param);

        int      (*eventrun) (void *param);


...   下一页
 ·tembeddedwb的一个小bug    »显示摘要«
    摘要: 这几天不知道是不是人品出了问题,老是遇上一些小bug。 昨天在公司里写了一个有浏览网页代码的小程序,图方便,使用的是tembeddedwb控件,这个控件在delphi自带的twebbrowser控件上又提供了一些选项和方法。 拿回家以后打开这个工程,在打开浏览页面窗口的时候却出错了:“error creating form:´´ is not a valid ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE