﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-明雨楼</title><link>http://www.cppblog.com/lyman/</link><description>I like c &amp; c++!</description><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 05:15:11 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 05:15:11 GMT</pubDate><ttl>60</ttl><item><title>由ACE中的一种函数调用方式想到的技巧</title><link>http://www.cppblog.com/lyman/archive/2009/02/25/74899.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Wed, 25 Feb 2009 09:32:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2009/02/25/74899.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/74899.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2009/02/25/74899.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/74899.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/74899.html</trackback:ping><description><![CDATA[在分析ACE的原码时发现有一种平时比较少见的调用方式，记得以前有人用C++描述Command时也用了这种方式,不过他们的代码都包装为模板,不方便理解.这里,我不用模板简单的展示其特点：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br>&nbsp;<br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;CA<br>{<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;CA()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;};<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;func1(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">func1</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;x;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">cc&nbsp;is&nbsp;:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;cc&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;cc;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;func2(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">func2</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cc&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;a&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;y;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">cc&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">cc</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;cc;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;(CA::</span><span style="color: #000000;">*</span><span style="color: #000000;">FUNC)(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Test1()&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FUNC&nbsp;f;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">CA::func2;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">-&gt;*</span><span style="color: #000000;">f)&nbsp;(</span><span style="color: #000000;">10</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;test2(FUNC&nbsp;func,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;b)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ACE中是先做一些共同的复杂的事,然后调用不同的func部分: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">-&gt;*</span><span style="color: #000000;">func)(a,b);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #0000ff;">private</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cc;<br>};<br>&nbsp;<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CA&nbsp;a;<br>&nbsp;&nbsp;&nbsp;&nbsp;a.Test1();<br>&nbsp;&nbsp;&nbsp;&nbsp;a.test2(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">CA::func2,</span><span style="color: #000000;">11</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}</span></div>
<br>很酷!调用者可以把类的函数作为参数传递.<br>好再开下面,利用继承的关系,我们还可以做到同样效果: <br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;CB<br>{<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">virtual</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;func1(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x)</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">virtual</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;func2(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x)</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;(CB::</span><span style="color: #000000;">*</span><span style="color: #000000;">FUNC)(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Test1()&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FUNC&nbsp;f;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">CB::func2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">-&gt;*</span><span style="color: #000000;">f)&nbsp;(</span><span style="color: #000000;">10</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">20</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;test2(FUNC&nbsp;func,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;b)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">-&gt;*</span><span style="color: #000000;">func)(a,b);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>};&nbsp;&nbsp;&nbsp;&nbsp;<br><br></span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;CA:</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;CB<br>{<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;CA()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;};<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;func1(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">func1</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;x;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">cc&nbsp;is&nbsp;:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">&nbsp;cc&nbsp;</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;cc;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;func2(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">func2</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cc&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;a&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;y;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">"</span><span style="color: #000000;">cc&nbsp;is:</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">cc</span><span style="color: #000000;">&lt;&lt;</span><span style="color: #000000;">endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;cc;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: #0000ff;">private</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cc;<br>};<br>&nbsp;<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main(&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;CB&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">pB&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;CA();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;pB</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">Test1();<br>&nbsp;&nbsp;&nbsp;&nbsp;pB</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">test2(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">CB::func2,</span><span style="color: #000000;">11</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;pB;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}</span></div>
上面的例子如果应用到Command模式中,func1 和func2就可以分别是Execute 跟 UnDo的接口了.至于如何实现,就是派生类的问题了.<br>(上述代码均在MinGW中测试通过) <br>&nbsp;<br><br><img src ="http://www.cppblog.com/lyman/aggbug/74899.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2009-02-25 17:32 <a href="http://www.cppblog.com/lyman/archive/2009/02/25/74899.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>部门变动</title><link>http://www.cppblog.com/lyman/archive/2008/12/02/68371.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Tue, 02 Dec 2008 05:45:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2008/12/02/68371.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/68371.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2008/12/02/68371.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/68371.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/68371.html</trackback:ping><description><![CDATA[前两个月，公司对我们部门动大手术了。把软件研发部分成了3大块，分别是：系统工程与架构部，开发部，测试部。由于以前在团队里基本所有架构方面的事都有我参与，所以，这次上头有意问我有没做架构方面工作的想法。我理想当然答应这份差事。于是，被提到系统架构师的岗位上。这段时间，经过公司培训，才发现做系统架构师其实真不简单，负的责任比我原来想的大多了。另外，自己技术方面的素养也必须尽快提高，觉得自己应在以下方面多下功夫：<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  1.领域内的知识面的扩展。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  2.软件构建的基础知识的巩固。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  3.行业内新的设计思想及技术的认知。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  4.公司产品的发展方向及价值观也需关心。<br>总的说来，为适应新的工作，我需要：多学，多问，多研究，多动手，多关心，多参与。<br><img src ="http://www.cppblog.com/lyman/aggbug/68371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2008-12-02 13:45 <a href="http://www.cppblog.com/lyman/archive/2008/12/02/68371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于什么是一个模块</title><link>http://www.cppblog.com/lyman/archive/2008/12/02/68360.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Tue, 02 Dec 2008 03:21:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2008/12/02/68360.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/68360.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2008/12/02/68360.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/68360.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/68360.html</trackback:ping><description><![CDATA[在概要设计时，发现参与讨论的人对什么是模块,模块的划分根据是什么的认识有很大的差异。<br>我也不敢乱下定论，还是看看书本是怎么说的：<br>---------------------------------------------------<br>1 .参考一下《软件架构艺术》一书，<span class="b24-bookauthor">Stephen T. Albin</span>&nbsp; 在里面描述：<br>
<p class="first-para">Modules are discrete units of software (binary and source).
Binary modules are instantiated at run time and these instantiations are
commonly called <em class="emphasis">components</em> and <em class="emphasis">connectors</em>. A given module may contain the specifications for
several component types and connector types. The component (instances) may be of
a fixed number in some situations. For example, a Web server executable, when
launched, results in a single Web server component instance. The <em class="emphasis">Web server module</em> is the binary code that exists as a set of
program files. The <em class="emphasis">Web server component</em> is a running
instance of the Web server.</p>
<p class="para">I have seen some confusion over the use of the terms <em class="emphasis">module</em>, <em class="emphasis">component</em>, and <em class="emphasis">connector</em>. A <em class="emphasis">module</em> is a discrete unit
of design that is composed of a hidden set of elements and a set of shared
elements. Modules have high internal cohesion and low external coupling. Modules
may represent the physical packaging of the application's binary code, which can
be described further by component types and connector types. Components and
connectors describe the physical instantiation of a system. The term <em class="emphasis">component</em> is often used to mean a component type or module. <span style="color: red;">A</span>
<em style="color: red;" class="emphasis">module</em><span style="color: red;"> refers to a unit of software that can be designed,
implemented, and compiled into a deliverable executable system or subsystem; it
is a unit of execution.</span> A <em class="emphasis">component</em> is a runtime entity,
the definition of which exists in a module. A classic modular architecture is a
client-server system. The client and the server are two modules. The server
exports some elements such as a set of publicly visible relational database
tables and views. The client knows about this publicly visible schema. The
client and server are unaware of the internal composition of the other.</p>
那么按红色部分来说，如果说一个dll或一个Exe里由多少个模块组成这将是的笑话了。<br>2 .参考Mary shaw的《软件体系结》：<br>&nbsp;&nbsp;&nbsp; <span style="color: red;">模块式软件被划分成独立命名的，并可被独立访问的成分。模块划分，粒度可大可小。划分依据是对应用逻辑结构的理解。</span><br>这个定义，似乎有没有《软件架构艺术》那么严格。没有定义具体什么为&#8220;被独立访问&#8221;的成分。<br>3. 《Documenting_Software_Architectures》<br>&nbsp;&nbsp; <span style="color: red;">A module </span><span style="color: red;" class="docEmphasis">tends</span><span style="color: red;"> to refer first and foremost to a
design-time entity.</span> Parnas's foundational work in module design (1972) used
information hiding as the criterion for allocating responsibility to a module.
Information that was likely to change over the lifetime of a system, such as the
choice of data structures or algorithms, was assigned to a module, which had an
interface through which its facilities were accessed.<br>&nbsp;&nbsp;&nbsp; 其说，模块是设计时的实体，特点是信息隐藏和能通过模块的接口访问。在介绍模块视图时他说：<br>&nbsp;&nbsp;&nbsp; A module is a code unit that implements a set of responsibilities. <span style="color: red;">A module can
be a class, a collection of classes, a layer, or any decomposition of the code
unit.</span> Every module has a collection of properties assigned to it. These
properties are intended to express the important information associated with the
module, as well as constraints on the module. Sample properties are
responsibilities, visibility information, and author. Modules have relations to
one another. Example relations are <span class="docEmphasis">is part of</span> or
<span class="docEmphasis">inherits from</span>.<br>---------------------------------------------------<br><br>不同的作者有不同的看法，但综合一下，我认为模块因该是一个独立设计的单元，并为其他模块提供访问接口。也就是说，他是一个架构中的设计元素，但不限制他的存在模式，也就是他是提供了可访问接口而且实现某一功能的一个实体，可以是一个类或一组类或可执行程序等。<br>&nbsp;&nbsp; <br><br>   <img src ="http://www.cppblog.com/lyman/aggbug/68360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2008-12-02 11:21 <a href="http://www.cppblog.com/lyman/archive/2008/12/02/68360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>年度总结</title><link>http://www.cppblog.com/lyman/archive/2008/02/04/42519.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Mon, 04 Feb 2008 07:29:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2008/02/04/42519.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/42519.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2008/02/04/42519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/42519.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/42519.html</trackback:ping><description><![CDATA[今天是年二十八，一年又要过去了。明天就可以放假休息了。下班前抽空做下年度总结。今年我主要集中精力在h323上，更确切的说是在OPenh323上。虽说我不算聪明，但这一年的研究还是有点收获的，主要在以下方面：<br>1 对现有opneh323不支持的h.264的加入。<br>&nbsp;&nbsp;&nbsp; 虽然不是很按标准，用的是常规视频能力来加入的，但也算是在视频的清晰度上有所提高。<br>2 根据需要自己建立多条对应的h323逻辑通道来传送自己的数据。逻辑通道可以是rtp也可以是TCP。<br>3 用h323协商逻辑通道的方式来建立自定义的RTP通道。现在这种方式用在GIPS的RTP上效果还真不错！<br><br><br><img src ="http://www.cppblog.com/lyman/aggbug/42519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2008-02-04 15:29 <a href="http://www.cppblog.com/lyman/archive/2008/02/04/42519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OPenH323要分家了</title><link>http://www.cppblog.com/lyman/archive/2007/10/22/34822.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Mon, 22 Oct 2007 01:58:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2007/10/22/34822.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/34822.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2007/10/22/34822.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/34822.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/34822.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体; color: navy;" lang="EN-US">H323</span><span style="font-size: 12pt; font-family: 宋体; color: navy;">和<span lang="EN-US">SIP</span>果然难于共存。<span lang="EN-US">Openh323</span>原有的开发者也将分为两大块：</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体; color: navy;" lang="EN-US">OPAL VOIP</span><span style="font-size: 12pt; font-family: 宋体; color: navy;">： 保留<span lang="EN-US">Opal</span>现有<span lang="EN-US">H323</span>功能，但重点明显是要向兼容<span lang="EN-US">SIP</span>方向发展；其网站介绍为：</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">OPAL implements the commonly
used protocols used to send voice, video and fax data over IP networks.
Originally part of the OpenH323 project, OpalVoip has grown to include SIP and
IAX2.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体; color: navy;" lang="EN-US">h323plus</span><span style="font-size: 12pt; font-family: 宋体; color: navy;">：在原有<span lang="EN-US">OpenH323</span>基础上继续完善<span lang="EN-US">ITU</span>的<span lang="EN-US">H323</span>系列的协议，其介绍为：</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体; color: navy;" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">The H.323 Plus project intends to do much more than simply provide a new
home for open source H.323 developers. Developers have told us they intend to
work to provide significant new enhancements to the very successful H.323
systems deployed worldwide. For example,<span style="color: red;"> NAT/FW
traversal</span>, instant messaging, presence, and many other enhancements are
already in progress or being planned. Further, the open source community has
expressed interest to us to enable more collaborative features to H.323,
including such things as application sharing, whiteboarding, and other
capabilities.</span><span style="font-size: 12pt; font-family: 宋体;">（可惜，这些功能<span lang="EN-US">OPAL</span>将不能用到了）<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">至于底层的<span lang="EN-US">pwlib</span>（即<span lang="EN-US">ptlib</span>）估计暂时还会保持一致。<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><br>
<!--[if !supportLineBreakNewLine]--><br>
<!--[endif]--><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">分家后期邮件列表也将分开：<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><a  href="https://lists.sourceforge.net/lists/listinfo/opalvoip-devel">https://lists.sourceforge.net/lists/listinfo/opalvoip-devel</a><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><a  href="http://lists.packetizer.com/mailman/listinfo/h323plus"><span>http://lists.packetizer.com/mailman/listinfo/h323plus</span></a></span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">网站地址分别：<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-bottom: 12pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">http://www.h323plus.org/<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">http://www.opalvoip.org/<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt;"><span style="color: navy;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt;"><span style="font-family: 宋体; color: navy;">对于我们可能会更关心</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">OpenH323</span><span style="font-size: 12pt; font-family: 宋体;">的主要开发者 </span><span style="font-size: 9pt; font-family: arial;" lang="EN-US">Simon </span><span style="font-size: 9pt; font-family: 宋体;">的以下言论：</span><span style="font-size: 9pt; font-family: Arial;"> </span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">&nbsp;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">The following projects are currently
planned to be supported within H323plus.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">OpenMCU (including remote conference
controls) OpenAM<span>&nbsp; </span>(upgraded to support
VoiceMail support to GnuGk) MyPhone OhPhone<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">The Library is almost drop-in
replacable with the existing OpenH323 and contains numerous enhancements
including video plugins (compatible with<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">Opal) and large amount of new work
not currently supported in Opal.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">Some of the new work now available in
h323plus H.230<span>&nbsp; </span>Conference Controls (incl
tunneling GCC (T.124))<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.239<span>&nbsp;
</span>Application Sharing<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.249<span>&nbsp;
</span>Extended user inputs<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.341<span>&nbsp;
</span>SNMP support<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.350<span>&nbsp;
</span>LDAP WhitePages<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.460<span>&nbsp;
</span>Numerous custom Extensibility features<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Text Messaging (working doc ITU),<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Follow Me,<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>PDI (Personal Data Interchange)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.460.9 RealTime QoS Measurements<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">Video Plugins (fully compatible with
Opal)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.235 Plugins (for external Biometric
and smartcard authenticators) QoS Capability negotiation Conference Controls
capability advertisement.<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">New work planned/proposed<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.460.presence<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">H.460.18/19 Nat Traversal<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">Video on Demand project (using
H.239/H.249)<o:p></o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 9pt; font-family: arial;" lang="EN-US">We can also provide full consulting
service support for existing openH323 based projects as well as provide
assistance in migration of these projects to h323plus.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 21pt;"><span style="color: navy;" lang="EN-US"><o:p>&nbsp;</o:p></span></p><img src ="http://www.cppblog.com/lyman/aggbug/34822.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2007-10-22 09:58 <a href="http://www.cppblog.com/lyman/archive/2007/10/22/34822.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MCU多通道传送音视频</title><link>http://www.cppblog.com/lyman/archive/2007/09/29/33175.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Sat, 29 Sep 2007 00:57:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2007/09/29/33175.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/33175.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2007/09/29/33175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/33175.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/33175.html</trackback:ping><description><![CDATA[研究h323 端点间通过多通道发送数据，例如MCU可以向EP用多通道来发送音视频。这段时间我从音频上作了测试，可以把多路音频通过多个通道发送给EP让EP直接在声卡上混音，效果不错。但（MCU-〉EP）音频使用多通道这只是一种在网络带宽非常好的情况下的方案，因为如果用的是G.711(单路64kbit/s)就不可能在带宽有限的公网上使用了。
<img src ="http://www.cppblog.com/lyman/aggbug/33175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2007-09-29 08:57 <a href="http://www.cppblog.com/lyman/archive/2007/09/29/33175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>老温也开blog了关于x264的东西可以到他那里看看.</title><link>http://www.cppblog.com/lyman/archive/2007/07/25/28748.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Wed, 25 Jul 2007 03:32:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2007/07/25/28748.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/28748.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2007/07/25/28748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/28748.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/28748.html</trackback:ping><description><![CDATA[<a href="http://www.cnweblog.com/realwnc/">http://www.cnweblog.com/realwnc/</a>
<img src ="http://www.cppblog.com/lyman/aggbug/28748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2007-07-25 11:32 <a href="http://www.cppblog.com/lyman/archive/2007/07/25/28748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>x264加入成功了</title><link>http://www.cppblog.com/lyman/archive/2007/07/23/28641.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Mon, 23 Jul 2007 09:31:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2007/07/23/28641.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/28641.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2007/07/23/28641.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/28641.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/28641.html</trackback:ping><description><![CDATA[<p><font style="BACKGROUND-COLOR: #cce8cf">由于与OphenH323中h263使用的ffmpeg库冲突所以把h263也提出来另外实现.</font></p>
<img src ="http://www.cppblog.com/lyman/aggbug/28641.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2007-07-23 17:31 <a href="http://www.cppblog.com/lyman/archive/2007/07/23/28641.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>气愤!再急也不该生产垃圾代码呀!</title><link>http://www.cppblog.com/lyman/archive/2007/05/11/23880.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Fri, 11 May 2007 02:35:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2007/05/11/23880.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/23880.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2007/05/11/23880.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/23880.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/23880.html</trackback:ping><description><![CDATA[上头头脑发热.急于让我们在原来的视频会议基础上完成数据会议T120的大部分功能.我们被避着以很多非标准的自定协议代替T120标准中规定的东西.而且新的架构的改动都没有详细分析就开始着手写代码了.也就是说我们开始生产垃圾!<br>鄙视领导者的短浅眼光!
<img src ="http://www.cppblog.com/lyman/aggbug/23880.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2007-05-11 10:35 <a href="http://www.cppblog.com/lyman/archive/2007/05/11/23880.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于OpenH323 项目的进展</title><link>http://www.cppblog.com/lyman/archive/2007/03/30/20939.html</link><dc:creator>名羽</dc:creator><author>名羽</author><pubDate>Fri, 30 Mar 2007 07:02:00 GMT</pubDate><guid>http://www.cppblog.com/lyman/archive/2007/03/30/20939.html</guid><wfw:comment>http://www.cppblog.com/lyman/comments/20939.html</wfw:comment><comments>http://www.cppblog.com/lyman/archive/2007/03/30/20939.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/lyman/comments/commentRss/20939.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lyman/services/trackbacks/20939.html</trackback:ping><description><![CDATA[目前对Openh323的源代码已有较多的了解，开始对部分协议进行扩展例如H245会议管理部分，4CIF的加入．另外现有的协议栈代码中没有实现T120通道的数字会议，目前正对该部分进行补充．<img src ="http://www.cppblog.com/lyman/aggbug/20939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lyman/" target="_blank">名羽</a> 2007-03-30 15:02 <a href="http://www.cppblog.com/lyman/archive/2007/03/30/20939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>