2011年2月25日

摘要: Determining the Size of a Class ObjectBy Girish ShettyThere are many factors that decide the size of an object of a class in C++. These factors are:Size of all non-static data membersOrder of data membersByte alignment or byte paddingSize of its immediate base classThe existence of virtual function( 阅读全文
posted @ 2011-02-25 16:33 peterxiang 阅读(375) 评论(0) 推荐(0) 编辑
 

2010年7月16日

摘要: C++ 中面向对象编程的一个颇具讽刺意味的地方是,不能使用对象支持面向对象编程,相反,必须使用指针或引用。例如,下面的代码段: 阅读全文
posted @ 2010-07-16 17:32 peterxiang 阅读(1670) 评论(0) 推荐(0) 编辑
 

2010年7月12日

摘要: IDispatch接口如果是编译型语言,那么我们可以让编译器在编译的时候装载类型库,也就是装载接口的描述。在第七回文章当中,我们分别使用了#include方法和#import方法来实现的。装载了类型库后,编译器就知道应该如何编译接口函数的调用了---这叫“前绑定”。但是,如果想在脚本语言中使用组件,问题就大了,因为脚本语言是解释执行的,它执行的时候不会知道具体的函数地址,怎... 阅读全文
posted @ 2010-07-12 17:25 peterxiang 阅读(765) 评论(0) 推荐(0) 编辑
 

2010年7月8日

摘要: 我们每申请一块动态内存,都必须在某处释放它,如果忘记了,则会造成内存泄露。为了减轻程序员的负担并降低程序内存泄露的风险,有人想了一种办法:不直接调用动态内存的指针,而是通过 类 来封装一下。因为类有构造函数和析构函数,并且总是成对出现的,我们只要在析构函数中释放掉申请到的动态内存,就安全了。而类的析构函数是系统调用的,不用我们去操心。这就是智能指针的中心思想。甚好,甚强巨。可是,要用这个方法,还要... 阅读全文
posted @ 2010-07-08 14:30 peterxiang 阅读(238) 评论(1) 推荐(0) 编辑
 

2010年6月17日

摘要: 今天试了下在windows上调用pthread库,做个笔记先首先下载pthread for windows的库文件:http://www.cnblogs.com/peterxiang/admin/ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-2-7-0-release.exe这个自解压文件,压缩包里的pthreads.2目录是源码... 阅读全文
posted @ 2010-06-17 16:48 peterxiang 阅读(419) 评论(0) 推荐(0) 编辑
 

2010年6月8日

摘要: 只学习使用了system V的共享内存,无所谓了,反正都兼容。ipckey=ftok("/home1/xiangyz/shmm/",0);ftok有两个参数,一个是字符串,一个是字符。字符串就是共享内存的地址,字符一般用来标记这个标识符所标识的共享内存是这个进程所开辟的第几个共享内存。ftok()会返回一个key_t型的值,也就是计算出来的标识符的值。int shmget( key_t shmke... 阅读全文
posted @ 2010-06-08 10:30 peterxiang 阅读(299) 评论(0) 推荐(0) 编辑
 

2010年6月7日

摘要: 关于Oracle的东西,可以参考《OracleCallInterfaceProgrammer'sGuide》高级队列是在 Oracle Streams 信息集成基础架构上构建的一个独特的数据库集成消息队列特性。使用高级队列,就可以如同从 Oracle 数据库中执行 SQL 操作一样执行消息队列操作。消息队列功能允许 Oracle 数据库上的应用程序通过 AQ 队列中的信息进行异步传递。与数据库的集... 阅读全文
posted @ 2010-06-07 10:52 peterxiang 阅读(1058) 评论(0) 推荐(0) 编辑
 
摘要: programTESTPROG{versionVERSION{stringTEST(string)=1;}=1;}=87654321;客户端:#include<rpc/rpc.h>CLIENT*clnt_create( constchar*host,constu_longprognum,constu_longversnum,constchar*nettype);enumclnt_sta... 阅读全文
posted @ 2010-06-07 10:42 peterxiang 阅读(3145) 评论(0) 推荐(0) 编辑
 

2010年6月6日

摘要: 线程池的创建可以参考:swtpool_init在线程池创建线程的时候,将函数swtpool_thread_func的指针作为参数传给pthread_create;而swtpool_thread_func则通过调用swtpool_get_work来获取工作队列里待处理的workitem(这个队列里的workitem就是通过下面的swtpool_add_work函数插入的。)在获得待处理的work i... 阅读全文
posted @ 2010-06-06 17:10 peterxiang 阅读(168) 评论(0) 推荐(0) 编辑
 
摘要: 1.初始化条件变量pthread_cond_init#include<pthread.h>intpthread_cond_init(pthread_cond_t*cv,constpthread_condattr_t*cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的属性将由catt... 阅读全文
posted @ 2010-06-06 16:33 peterxiang 阅读(318) 评论(0) 推荐(0) 编辑