自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李永亮的专栏

设计改变中国!

  • 博客(26)
  • 收藏
  • 关注

原创 C++编程规范笔记前言及目录

买这本书的动力是因为I’m a fan of Andrei,原因更加简单,因为他对模板的操控能力完全超出了我对模板的认知。Loki在我手头上任意一个编译器都无法编译通过,这让我倍加郁闷,无法深入的探索Loki的深层实现。如此天马行空的人规规矩矩写书是什么样子的?我非常期待。 组织和策略问题         第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化)         第1条 在

2006-07-31 13:17:00 853

原创 SIP基本呼叫流程

SIP信令流程INVITE------------------------------------>100 Trying------------------------------------180 Ringing------------------------------------200 OK-----------------------------------

2006-07-30 16:04:00 2086 1

原创 AIX命令概要

    我最痛心的事情莫过于丢了研究生阶段的UNIX笔记,这让我每每想起总是痛心疾首,希望我能通过不断的努力补全以前的努力。这是一个不断增加补全的过程,所以这篇总是处于不断增加、完善的过程中。cp       拷贝文件。可以将一个文件拷贝成另外一个文件。只要带上目标文件名。 del       删除文件。 echo $PATH显示系统环境变量的路径。 cd

2006-07-28 18:29:00 1445

原创 自行释放ACE_Message_Block

       在使用ACE_Message_Block的时候可能面临很多种选择,将ACE_Message_Block层层传递,那么有时候会忽略ACE_Message_Block的释放,而ACE_Message_Block一般都是new出来的这样会导致内存泄露。       怎么有简单的办法。办法有,但不完善。auto_ptr是一种,那么将ACE_Message_Block new的指针,放在a

2006-07-28 11:14:00 2072 2

原创 ACE初始化的惆怅

       昨天在写一个ACE架构的DLL后,提供给别人调用,其中,这个DLL中启了一个线程。但调用的exe中如果没有初始化ACE_OS_Object_Manager和ACE_Object_Manager,那么在线程启动的时候会出现异常。       一般来说,如果是可执行程序,那么main函数无论是否写成ACE_MAIN,如果引用了ACE的库,那么main函数会被一个宏所替代,这个宏的

2006-07-27 16:32:00 1186

原创 C++数组参数的说明

       不要试图欺骗编译器。有这么一个函数,void test(char str[32]){……}想怎么调用这个函数?如果你不想传入参数怎么办?是否可以test(NULL)?呵呵,这是绝对不可以的,编译器认为这个参数的空间你已经申请了,所以在参数压栈的时候会导致程序崩溃,切记。test(NULL)仅限于参数为指针的情况,对数组并不适用。 

2006-07-27 10:58:00 1856

原创 Cygwin试用心得

使用Cygwin主要是因为想适应g++编译器,没有想到的是windows下居然g++不能主动使用,所以被迫无奈装了Cygwin。Cygwin只是在Windows下对Linux做了一个仿真,并不代表真正可以运行Linux API的程序。Cygwin的默认安装中不包括g++,如果需要g++的话,需要另外进行安装,在dev中存在这样的选项,我选择了g++以及g++连接器等组件。试用了一下,还比较OK。目

2006-07-27 00:03:00 990

原创 ACE_Condition_Thread_Mutex使用心得

       今天小试了一把ACE_Condition_Thread_Mutex,使用的原因是我使用ACE_Event受挫。ACE_Event在Windows下自然好使,然而移植到AIX下就不是特别好使了。为了解决这一问题就使用了ACE_Condition_Thread_Mutex。开始因为粗心,犯了不少错误。现在总结如下。首先,ACE_Condition_Thread_Mutex不等于Eve

2006-07-25 19:52:00 4116

原创 More Effective C++后记及目录

       读这本书其实还是花了一点时间的,其中的一些条款的内涵及外延非常丰富。我觉得这是很用心去看的一本书,但在看书过程中,还是出现了浮躁的现象。实际上留给我看书的时间是有点不足,所以又想快些看完。事情总是两难的。       我接下来买了《Effective C++》的第三版,我想这可能是我认真读的最后一本C++读物了,再往后要涉猎的C++的书籍已经不多,充其量是把《C++编程思想》的第

2006-07-24 21:12:00 1168 1

原创 More Effective C++之31

条款31:让函数根据一个以上的对象型别来决定如何虚化       如果函数有两个自变量,而这两个自变量都是继承类,我们如果根据排列组合的办法来实现继承类。RTTI或者只使用虚函数?似乎都不是好办法。Meyers给出的解决方案是自行仿真虚函数表格(Virtual Function Tables)考虑如下代码:#include string>#include #include io

2006-07-24 21:01:00 884

原创 More Effective C++之30

条款30: Proxy Classes(替身类/代理类)       相信么?C++缺乏对多维数组的有力支持.当我申明一个多维数组char strArray[10][10][10],仅仅意味着在栈上分配了1000Bytes的内存.对C++来说,可以理解这是一维数组.那么下面这就不好玩了.int i = 10;       char strArray = new char[i][i][i

2006-07-23 17:31:00 864

原创 More Effective C++之29

条款29:Reference counting(引用计数)       Reference counting让我想起了Java,当如果想用C++来实现Java的能力的话,那Reference counting必不可少。Reference counting可以节省程序的运行成本,大量的构造、析构、分配、释放和拷贝的代价被省略。Reference counting之实现       cla

2006-07-23 15:55:00 869

转载 周鸿袆:给已经融资成功的公司提个醒

                   战略不清晰,方向不明确  融资成功之后的企业最容易犯的错误就是变得战略不清晰,方向不明确,因为钱多起来无法控制自己什么都去尝试的欲望,不断的尝试和试挫,导致贻误了公司发展的最好机会。企业要迅速成长,一定要策略非常清晰,方向很明确。  如果拿下围棋打个比喻,一个棋盘有361个点,一个刚刚开始走围棋的企业,肯定觉得哪里都可以放一个子,没有一个定势的

2006-07-23 13:16:00 1097 2

原创 ACE_Message_Queue的超时设置和消息清除

    在使用ACE_Message_Queue的时候通常需要有一个等待超时,我先前用的时候,等待超时总是无法生效,但后来改变了后就OK了。       事情是这样的。ACE中是这样说明的,那么这意味着什么?当然我觉得是只有绝对时间才能生效,事实也是如此。param timeout The absolute time the caller will wait until for a block

2006-07-20 10:47:00 3216

原创 More Effective C++之28

条款28 Smart Pointer(智能指针)       智能指针具有非常强大的能力,谨慎而明智的选择能带来极大的好处。我不否认智能指针的能力,虽然我在之前的否认过auto_ptr。可能由于我自身能力的限制,体会不到auto_ptr的好处,但这样的可能性我觉得已经不大了。但auto_ptr是最简单的智能指针,在它的周围存在大量的作品,这些作品包括Boost、Loki、ACE等等,但是可惜的

2006-07-18 21:15:00 875 2

原创 More Effective C++之33

条款33:将非尾端类(non-leaf classes)设计为抽象类(abstract classes)       这一原则是绝对合适的,然而我们在应用的时候往往违反这一原则。我在目前的设计中就违反了这一原则,但好在我的对象都是独立的,不存在相互之间的关联关系,那我需要注意的就是虚函数的实现,这个地方是个比较大的隐患。为什么要这么做?它可以提高代码的健壮度,可靠度,精巧度和可扩充度。  

2006-07-18 19:31:00 793

原创 More Effective C++之34

条款34:如何在同一个程序中结合C++和C       我没有混用过C和C++,所谓混用,就是用不同编译器编译obj,然后一起连接,但我想这是否可行值得怀疑。至少我目前不知道合适的编译器组合。       考虑一下C和C++混用,可能产生的问题。Name Mangling(名称重整)       在C++中,因为存在重载函数的问题,为了区分重载函数,C++在编译的时候,会修改函数名

2006-07-17 13:35:00 767

原创 More Effective C++之35

条款35:让自己习惯于标准C++语言       标准C++在这些年发展很快,也许很快下一代标准就要出来了,我现在通常还是用VC6,很多新的特性可能都不支持了.C++最大的特点之一就是支持了标准程序库.差不多分成这些部分.支持C标准函数库、支持strting、支持国别、支持I/O、支持数值应用、支持广泛用途的containers和algorithms。       STL是一组松散的约定,

2006-07-17 13:07:00 770

原创 NMS SIP的一些工程注意事项

       我不是做工程的,但这是我的一些工程相关的一些经验总结:1.NMS SIP 1.0不支持re-invite, 如果出现re-invite的情况,消息不会到达应用层,并导致通话出现单通。不要对此大惊小怪。2.NMS SIP的测试license共有8路,并且只支持一个月,一个月后,各安天命。办法还是有的就是重新安装NCC SIP1.0。3.NMS NA2005在重装的时候容易出

2006-07-14 17:37:00 1064

原创 ACE ACE_Time_Value和ACE_Message_Queue的点滴

ACE的ACE_Time_Value是常用的类,它的构造函数explicit ACE_Time_Value (time_t sec, suseconds_t usec = 0);可以用秒和毫秒来构造一个时间段的值。这是在很多地方常用的,比如wait。ACE_Message_Queue是ACE的Queue,是可以选择是否线程安全。MessageQueue中默认要放置堆内存,因为取出和放入的都是指

2006-07-12 18:20:00 3863

原创 字符串处理若干准则

看一下如下代码,存在问题么?char test1[] = "S";char test2[] = "Mytest!";int nSize = min(strlen(test1),strlen(test2));strncpy(test2,test1,nSize);       当然了,最终结果会成为Sytest!,这当然不是我们想要的结果,不过没有办法。这样的字符串处理是不严谨的。

2006-07-10 16:23:00 924

原创 strncpy和memcpy辨析

char * __cdecl strncpy (        char * dest,        const char * source,        size_t count        ){        char *start = dest;         while (count && (*dest++ = *source++))    /* c

2006-07-10 16:19:00 1025

原创 strcpy函数

书接上文,从接到Socket中无法得到对方的IP和端口,应该在请求中发送过来。strcpy是比较好用的参数,用来做CString向char*的转换最为合适。char * __cdecl strcpy(char * dst, const char * src){        char * cp = dst;        while( *cp++ = *src++ )   

2006-07-10 16:07:00 864

原创 DLL版本控制引起的困惑

最近在作一个测试的时候遇到这样一个问题,问题的起因表现是系统启动失败,我找了很多的原因也没有找到什么结果.我所做的努力包括核实软件环境,硬件环境和代码本身.但问题出在了引用的DLL上,在程序的本目录上包含了旧版本的DLL,而当APP更新的时候引用的是新的应用程序的时候就会出现问题.我花了将近48小时来查找这个问题,这让我觉得教训深重.这是一个关于NMS的MSPP的绑定失败的问题,但内在是各种层次的

2006-07-05 18:49:00 1734

原创 RTP不通是因为没接网线

写这篇Blog很感慨,因为昨天工作上遇到了SIP接不通的情况,作为一个开发人员,我觉得比较好的地方是我丝毫没有怀疑我的代码出现问题.我当时怀疑的问题是参数的配置,可能某一个参数存在这样那样的问题,但事实上这些都不是.原因是没有插上网线.今天一开始就想骂人,很愤怒.很实事求是的说,我在面对大压力下,没有足够的冷静.昨天给了我差不多一个小时,但在这一个小时之内,我检查了若干种可能性,但没有具体对硬

2006-07-02 15:02:00 1012

原创 More Effective C++之32

条款32:在未来时态下发展程序       程序设计永远在变,仅仅几年前,STL可能还是一个新鲜的概念,而现在则成了C++的必备素质.这一条款的主要目的是为了提醒读者,多为未来做一些额外的考量.而事实证明证明这些努力必定不会白费.       首先,提供完整的class,即使一些部分目前还用不上.因为对基类的扩展,往往会给派生类带来巨大的影响,所以应当努力将工作提前做到.      

2006-07-02 11:25:00 717

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除