2008-09-20 08:06:25
新的长征,新的迷茫...
View Mode: Normal | Article List

[转贴]CppUnit 快速使用指南

[ 2008-01-28 12:55:32 | Author: Admin ]
CppUnit 是个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming)。主要功能就是对单元测试进行管理,并可进行自动化测试。这样描述可能没有让您体会到测试框架的强大威力,那您在开发过程中遇到下列问题吗?如果答案是肯定的,就应该学习使用这种技术:

* 测试代码没有很好地维护而废弃,再次需要测试时还需要重写;
* 投入太多的精力,找 bug,而新的代码仍然会出现类似 bug;
* 写完代码,心里没底,是否有大量 bug 等待自己;
* 新修改的代码不知道是否影响其他部分代码;
* 由于牵扯太多,导致不敢进行修改代码;
...

这些问题下文都会涉及。这个功能强大的测试框架在国内的 C++ ...

Read More...

.Net P/Invoke 非托管内存的访问

[ 2007-10-17 11:50:16 | Author: Admin ]
在使用P/Invoke时经常需要分配、释放非托管内存,实际上.Net的Marshal类提供了非常全面的功能,可以按照开发者的意愿去组织内存结构,只是使用上大大不如C++方便了。下面举例说明。

C++的结构:
  struct t_Inner
  {
    char* name;
    int type;
  };
  struct t_Outer
  {
    t_Inner* inners; //t_Inner结构的数组
    int count; //t_Inner数组的长度
  };

  void TestStruct(t_Outer* outer); //此函数将生成outer结构的具体内容

C#调用
首先定义结构:

  [StructLayout(LayoutKind.Sequential)]
  public struct t_Inner
  {
...

Read More...

锻炼身体,备考MBA

[ 2007-10-10 09:48:32 | Author: Admin ]
最近在备考明年一月份的MBA,压力很大;为了磨练自己的意志,于是决定晚上到对面的第二外国语学院跑步。

晚上七点钟到家之后没有吃饭,换上运动装就去了。本来担心校园的操场不开放,但很快发现里面锻炼的人还是不少的。

进去之后马上跑起来,跑了5圈超过2000米吧,开始是慢跑后来加快速度。

里面的环境对于整日受北京城CBD喧嚣折磨的人真如仙境一般,空阔的空间、新鲜的空气、平整的橡胶跑道、还有静谧的夜色和平静锻炼的人们。

终于有了自己喜欢的锻炼环境,我要将跑步坚持下去,计划每周跑两次。

看来当初买房子时是有眼光的嘿嘿
  史玉柱有一种让人始终无法忘记他的能力。20年前进入商界,他是当时最年轻的明星企业家。10年前,他是一败涂地的“巨人”。今天,他又即将打起新巨人的招牌,在富豪榜上跳跃前进。

  去年夏天,44岁的史玉柱重返旧地,回到珠海那座只建了首层的烂尾楼——巨人大厦前。那天下起了雨,他和随行的人都从大厦前的荒草中走进大堂躲雨。这个高约13米的大堂,仍可隐约看出当年的气派堂皇。

  十多年前,这个以4000元起家的传奇企业家狂热地建起这座大厦,却导致了身负两亿元巨债的后果。在巨人公司崩溃之后,他的巨人大厦和同时推出电脑、保健品、药品三大系列30个新品的神话,随即变成人们的饭后笑谈。

  倒下的“巨人”在史玉柱心里始终是一个难解的结。他在10年前的再次创业,起初完全是为了还债。但在将脑白金产品推得铺天盖地之后,他一发而不可收,先后投资银行、网游,不仅还清了陈年老债,还积累了巨额财富。
...

Read More...
秋石要找的钱终于有了着落。他的芯片公司技微联合刚刚与一家国际著名的风险投资(Venture Capital,VC)机构签订了保密协议。虽然这并不意味着他就一定能拿到钱,“但毕竟结束了商业计划书送出去以后石沉大海的状况。”

  他忍不住在MSN上传播这一好消息。技微联合属于没有具体产品销售、以研发为主的种子期项目。此前王秋石一直不明白,在VC资金大量进入中国的情况下,“我们这样有技术、有市场的公司为啥就拿不到钱?”

  “天使”短缺

  中国风险投资研究院发布的《2007年中国风险投资年度调研报告》,也许可以解释王秋石的疑惑。这份报告指出,尽管大量的资金在涌入中国的创业投资市场,但种子期项目的融资比例却一直在下降,2003年这一数据还是28%,如今却只有17%。

  由于投资总量的增加,种子期项目的融资额在绝对量上的增长是必然的。但相对于"中国40%以上的中小企业都是种子期项目"的状况,增长显然是杯水车薪。
...

Read More...

P/Invoke tips

[ 2007-08-20 17:10:16 | Author: Admin ]
P/Invoke使得.Net托管代码可以调用非托管代码,比如调用Window API。使用P/Invoke最大的困难是怎样写函数的调用接口,也就是怎样Marshal函数的参数。对于调用Windows API,网上可以找到所有API的P/Invoke函数接口,所以无需费什么力气;但是对于公司内部的遗留代码,必须自己来写函数接口了,而写这个函数接口有一定的困难。所以有人赞同说将遗留代码封装成COM组件。因为.Net调用COM组件只需要对该组件添加一个引用,.Net会自动处理参数Marshal的事情;而且只是在COM中对原有代码进行一次转调,不用考虑深层次的COM技术,可以将线程模型设为最简单的apartment模型;COM组件使用C++实现,我们可以很容易Debug原有的代码。

我觉得这样做同时也有下面的缺点:
1. 将Marshal从.Net转到COM中。实际上在实现COM接口时也必须考虑...

Read More...

Web Service的一些实践

[ 2007-08-08 11:55:41 | Author: Admin ]
最近公司的项目用到Web Service技术,所以有机会在实践中应用这个技术。因为以前也对Web Service有一些理论的知识,而且现有的封装都很好,所以调试起来也比较顺利。

Web Service我们是使用.Net 3.0的WCF开发,因为是暴露在互联网上面,所以比较考虑安全性的问题。

WCF的Channel和Binding的概念:http://msdn.microsoft.com/msdnmag/issues/07/07/ServiceStation/
WCF的安全:http://msdn.microsoft.com/msdnmag/issues/06/08/SecurityBriefs/
WCF的Instance Management和Session:http://www.cnblogs.com/artech/archive/2007/06/13/781216.aspx
...

Read More...