CnComm多线程串口通讯类解读

CnComm是llbird开发的WINDOWS/WINCE 多线程串口通讯开源库,使用C++ (ANSI/UNICODE)开发,代码采用传统C++的继承机制, 采用VC命名风格(匈牙利),提供同步IO并发访问的支持,内存管理采用内存池技术,提供对于C++异常的支持,对于串口库的扩展,不推荐直接在本代码上修改, 应通过C++继承扩展机制扩展本代码。现代C++使用RAII的机制,使用类来管理资源,在构造函数中分配资源,在析构函数中释放资源,如果出现在多线程的情况下,并发访问的出现,还不止要解决好内存泄露方面的问
摘要由CSDN通过智能技术生成

     文/渔樵阿飞

 CnComm是llbird开发的WINDOWS/WINCE 多线程串口通讯开源库,使用C++ (ANSI/UNICODE)开发,支持的平台包括WINDOWS(WIN98/NT/2000/XP/2003/Vista),WINCE 5.0 模拟器, Pocket PC 2003 模拟器,在BC++ 5(free tool); C++ BUILDER 4, 5, 6, X;EVC 4(sp4); G++ 3, 4; Intel C++ 7, 8, 9; VC++ 6(sp6), .NET, 2003, 2005等编译工具下编译测试通过,代码采用传统C++的继承机制, 采用VC命名风格(匈牙利),提供同步IO并发访问的支持,内存管理采用内存池技术,提供对于C++异常的支持,对于串口库的扩展,不推荐直接在本代码上修改, 应通过C++继承扩展机制扩展本代码。

       CnComm多线程串口类的类结构如下,CnComm是定义的多线程串口类,CnComm::BlockBuffer类是根据通讯特点开发的缓冲区类,单向链表内存块,提供一些扩展以支持和API挂接,CnComm::InnerLock是自动锁类,用于函数内部,利用对象的生命周期完成锁定及解锁,CnComm::MfcException是一个异常处理类,用于MFC的异常处理,CnComm::BlockBuffer::Block是定义的缓冲区内存块,CnComm::BlockBuffer::InnerLock是定义的自动锁类,CnComm::BlockBuffer::Iterator是定义的缓冲区迭代器。在这个多线程的串口类中,定义了多个嵌套类。

       现代C++使用RAII的机制,使用类来管理资源,在构造函数中分配资源,在析构函数中释放资源,这种方法管理资源基本上不会遇到什么问题,然而,动态内存的管理,一直就是一个烫手的山芋, C/C++提供了多种方式,C中的malloc/free,C++中的new/delete以及new[]/delete[],全局的::operator new和::operator delete,C+

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值