Welcome 微信登录

首页 / 软件开发 / C++

libevent源码浅析(一)

libevent源码浅析(一)

libevent源码浅析(一)2010-03-09 javaeye simohayha这里分析的是libevent-1.4.9。PS:前面还看了libev的源代码,妈的,那代码写的太猥亵了,相比较libevent代码写的好多了。。首先来看一下最主要的几个数据结构:eventop结构体是所有事件驱动模型的基类。所有的io复用类型都会实现此结构体里各种方法。struct eventop {const char *name; ///<事件驱动名称voi...
模板友元化

模板友元化

模板友元化2011-04-22宋科摘要:如何将一个函数模板的特化声明为友元呢?标准C++给你提供了两种合法的 语法。然而,事实上,对于其中的一种语法,几乎没有编译器对其给予支持;而对于另一种 ,当前所有主流编译器(除了一款以外)都对其提供了支持。假设我们有一个函数模 板,可以调用其所操作的对象的SomethingPrivate()方法。特别地,考虑 boost::checked_delete()函数模板,它用以删除指定的对象——在它...
libevent源码浅析(二):libevent的定时器的实现

libevent源码浅析(二):libevent的定时器的实现

libevent源码浅析(二):libevent的定时器的实现2010-03-09 javaeye simohayha在libevent中定时器的实现是通过基于最小堆的优先级队列来实现的。对于这两个数据结构比较陌生的可以去翻算法导论的6.5节。主要的源码都在min_heap.c中。我们先来看主要的数据结构:typedef struct min_heap{ struct event** p; unsigned n, a;} min_heap_t;在这个数...
使用typedef抑制劣质代码

使用typedef抑制劣质代码

使用typedef抑制劣质代码2011-04-22 MTT工作室 Danny Kalev摘要:Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管 怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免 缺欠,从而使代码更健壮。typedef 声明,简称 typedef,为现有类型创建一个新的 名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typed...
深入分析MFC中的CArray类

深入分析MFC中的CArray类

深入分析MFC中的CArray类2011-04-22董志勇我们在使用vc进行比较复杂的编程时,经常需要用到复杂的数组结构,并希望能实现动态 管理。由于C++并不支持动态数组,MFC提供了一个CArray类来实现动态数组的功能。有效的 使用CArray类,可以提高程序的效率。MFC提供了一套模板库,来实现一些比较常见的 数据结构如Array,List,Map。CArray即为其中的一个,用来实现动态数组的功能。CArray是从CObject派生,有两个模板参...
用VC++ 6.0实现JNI的例子

用VC++ 6.0实现JNI的例子

用VC++ 6.0实现JNI的例子2011-04-22陈健明JNI是JDK的一部分,用于为Java提供一个本地代码的接口。通过使用JNI编写的程序能够 确保你的代码能够完全的移植到所有的平台。JNI使得运行在JVM虚拟机上的Java代码能够操 作使用其它语言编写的应用程序和库,比如C/C++以及汇编语言等。此外JNI提供的某些API还 允许你把JVM嵌入到本地应用程序中。下图表达了JNI所扮演的角色。本文将通过一个 实例来阐述使用VC++6.0来实现JNI...
《新加坡程序员考题一则及分析》的讨论

《新加坡程序员考题一则及分析》的讨论

《新加坡程序员考题一则及分析》的讨论2010-03-09史列因首先,题目明确要求"这个类必须从 C++ 中标准的 string 类派生",注意,是STL的string, 而不是MFC的CString。而且要求派生类的名字是String,而不是CMyString。这样,可以看出给出的程序完全不合要求。以第一个函数为例,下面是一个基本符合要求的答案(对于不同的STL版本,可能会有细微的差别):class divide_empty_subst...
VC++与MATLAB混合编程及其应用

VC++与MATLAB混合编程及其应用

VC++与MATLAB混合编程及其应用2011-04-22 计算机与信息技术 景征骏 许家民摘 要 本文详述了在VC++6.0编译环境下如何利用Matlab来实现应用系统的设计和分析, 介绍了通过Matlab与VC应用程序连接的常用方法,分析了VC与Matlab的混合编程的步骤,最 后通过一个具体实例的实现过程对上述方法进行了应用性介绍。关键词 VC++; Matlab;混合编程Matlab 是由Math Works 公司于1984 年推出的数值计算及图形...
BCB环境下CORBA实做之客户端

BCB环境下CORBA实做之客户端

BCB环境下CORBA实做之客户端2010-03-09品雪译建立一个CORBA客户端当你写一个CORBA客户时,第一步是确定客户程序可以与客户机上的ORB软件交谈。要做到这一点,使用CORBA Client wizard。选择File|New并从New Item对话框的Multitier页选择标签为CORBA Client的图标。这个向导让你说明是想建立一个控制台应用程序或是一个窗口应用程序。正如CORBA服务器程序,你可以指定CORBA客户是否使用VCL...
VC++实现计算机并口的数据采集

VC++实现计算机并口的数据采集

VC++实现计算机并口的数据采集2011-04-22 计算机与信息技术 高俊光 杨伟宏 柴国庆摘 要 并口制作A/D转换接口电路,利用VC++提供的现成函数,可以直接控制和读写标准 并口,具有无需打开机箱、开发成本低廉,制作方便等特点。关键词 计算机并口; 模数转换; VC++前言计算机与外围设备的连接,有多种接口方式:串行、USB 、SCSI、并行等,每一种接口方式都有其优点和缺点,由于串行和USB接口的抗干扰能力较强 ,传输距离远,所以在数据通信的时候...
BCB环境下CORBA实做之服务器

BCB环境下CORBA实做之服务器

BCB环境下CORBA实做之服务器2010-03-09品雪译BCB带有多个向导(Wizards)以简化CORBA服务器的开发过程。以下几步描述了如何用BCB建立一个CORBA服务器。定义对象界面使用CORBA server wizard建立一个包含起始时初始化BOA和ORBCORBA代码的服务器应用程序编译包含界面定义的IDL文件,得到框架及存根。用CORBA object wizard定义(并实现)类的实现。完成4建立的类实现CORBA 对象必要时,修改...
VC++通用GIS功能开发解决方案2.0v介绍

VC++通用GIS功能开发解决方案2.0v介绍

VC++通用GIS功能开发解决方案2.0v介绍2011-04-22 vckbase 潘立群综述《VC++通用GIS功能开发解决方案》源代码是基于VC++6.0 MFC 类库,在Win2000平台上开 发的。界面部分用到了较低版本的 CJ60Lib 开放源码库,用户可自行替换高版本或其他界面 库,它不作为本方案的商业部分。《VC++通用GIS功能开发解决方案》源代码是迄今为止公开提供的最全面、最完善的开发 GIS产品的一套基础解决方案。它的界面十分友好和具人...
C++ Builder编程指南1

C++ Builder编程指南1

C++ Builder编程指南12010-03-09Borland C++ Builder(以下简称C++ Builder)是由Borland公司 继Delphi之后又推出的一款高性能可视化集成开发工具。C++ Builder具有快速的可视化开发环境:只要简单地把控件(Component)拖到窗体(Form)上,定义一下它的属性,设置一下它的外观,就可以快速地建立应用程序界面;C++ Builder内置了100多个完全封装了Win95公用特性且具有完全可扩...
VC程序中树型控件节点拖动的完美实现

VC程序中树型控件节点拖动的完美实现

VC程序中树型控件节点拖动的完美实现2011-04-22 天极 刘涛Visual C++中提供的MFC类CtreeCtrl(树型控件)用来显示具有一定层次结构的数据项时 方便、直观,所以它已经被广泛地应用在各种软件中,如资源管理器中的磁盘目录就用的是 树型控件,我们在编程中也会经常用到这个控件,但是这个控件也有缺陷,那就是它并不直 接支持拖动节点等高级特性,这使得程序员在编程时使用它受到了很大限制,同时又给软件 用户带来了一些不便。为此,本实例通过从 CT...
C++ Builder编程指南2

C++ Builder编程指南2

C++ Builder编程指南22010-03-09三、常用控件的使用与编程静态文本是用户无法直接改变(不可编辑)的文本,程序可以在运行时刻来改变它,通常起标注和提示作用,它位于控件板的“Standard”页,其主要属性有:Align:指该控件在窗口中的位置或对齐方式(AlBottom:位于底部;AlClient:充满客户区;AlLeft:位于左方;AlNone:用户自定义;AlRight:位于右方;AlTop:位于顶部)。Alig...
如何在运行时确定对象类型(RTTI)

如何在运行时确定对象类型(RTTI)

如何在运行时确定对象类型(RTTI)2011-04-22 vckbase NorthTibetRTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。 它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两 个重要的 RTTI 运算符的使用方法,它们是 typeid 和 ...
<< 101 102 103 104 105 106 107 108 109 110 >>