李sir_Blog

博客园 首页 联系 订阅 管理

2011年3月28日

摘要: 软件总存在这样或者那样的bug。虽然测试员已经在很努力的寻找问题,程序员也在汗流浃背的除虫,但是总会有一些情况被遗漏或者不可预测,比如用户的硬件环境、网络状况、操作系统差异等等,不一而足。而导致的结果则是弹出下面这样一个让用户摸不着头脑又恼火的提示,然后崩溃掉,令程序员尴尬不已。而在一些成熟的软件产品中,程序崩溃时我们看到的却是另外一番画面,比如QQ:又比如迅雷:你也想让你的程序拥有友好的崩溃界面,降低用户生气的能量,并且收集一些必要的信息进行调试,来完善你的程序吗?如果你是MFC程序猿,请继续围观,其他猿类请自行无视,并寻找适合你的猿粪。其实MFC框架已经为我们考虑到这个问题,只是默认生成的 阅读全文
posted @ 2011-03-28 17:16 李sir 阅读(3789) 评论(0) 推荐(0)

摘要: 参考:http://blog.csdn.net/ArCoolGG/archive/2007/04/05/1553027.aspx首先,写一个 异常处理函数。std::ostream& operator << ( std::ostream& os, const EXCEPTION_RECORD& red ){ //return os << " Thread ID:" << GetCurrentThreadId()<< " ExceptionCode: " << red.Ex 阅读全文
posted @ 2011-03-28 17:09 李sir 阅读(1750) 评论(0) 推荐(0)

摘要: ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。最近分析ASIO的源代码,让我无不惊呀于它设计。在ACE中开发中的内存管理一直让人头痛,ASIO的出现,让我看到新的曙光,成为我新的好伙伴。简单地与ACE做个比较。1.层次架构:ACE底层是C风格的OS适配层,上一层基于C++的wrap类,再上一层是一些框架(Accpetor, Connector,Reactor等),最上一层是框架上服务。ASIO与之类似,底层是OS的适配层,上一 阅读全文
posted @ 2011-03-28 15:56 李sir 阅读(1154) 评论(0) 推荐(0)