- 博客(30)
- 资源 (11)
- 收藏
- 关注
原创 CnComm勘误及Faq
见另一博客,考虑两边都写花时间,所以统一写道C++博客,因为我是C++Userhttp://www.cppblog.com/llbird/archive/2009/05/15/CnComm.html
2009-05-14 18:59:00
7466
9
原创 Windows结构性异常处理封装类
学习软件工程时有句老话,“不存在没有错误的程序”,十余年历练,各种错误如影随行一如鬼魅,由此看真理是不需要检验的,你只需要信仰就可以了。Windows的程序员对于上图应用程序崩溃的对话框应该再熟悉不过,这是所谓的结构性异常的默认处理方式。空指针读写、数组越界、除零错误、溢出等严重错误,Windows都将产生结构性异常。由于MFC的框架并不提供结构性异常的封装,所以无论使用SDK或者M
2009-05-14 11:24:00
2643
1
原创 CnComm串口通讯库v1.5 文档、范例的下载链接
CnComm串口通讯库v1.5 文档、范例的下载链接在我的资源http://download.csdn.net/source/1224069或者http://www.cppblog.com/Files/llbird/CnComm.zip
2009-04-18 20:55:00
28372
19
原创 CnComm串口通讯库v1.5
/*! /mainpage CnComm v1.50 多线程串口通讯库 * /section About 关于 * * /n 版本: CnComm v1.50 * /n 用途: WINDOWS/WINCE 多线程串口通讯库 * /n 语言: C++ (ANSI/UNICODE) * /n 平台: WINDOWS(WIN98/NT/2000/XP/2003/V
2009-04-18 19:44:00
24732
35
原创 关于CnComm波特率设置的问题
我陆续接到网友的信件,都是关于接受和发送不符,或者说用其他串口程序可以,用CnComm就不可以,看了一下,错误只有一个就是,都把波特率设错了,正确的波特率字符串是9600,n,8,1 很多网友设成9600,8,n,1 这可能与我当时的注释你的笔误有关系,在这里提醒一下。 这个是个低级的问题,但又不容易发现,网友凡是发现最基本的接受和发送有问题,多检查这些设置、连接线问题,CnC
2008-11-05 11:03:00
3779
4
原创 C++文件型日志类(WIN32) v0.2
C++文件型日志类 v0.2版发布 附带一个范例程序 有做24小时值守程序或者后台作业程序可以用一用下载点见我的资源 有需要的朋友可以去下载 不要分 http://download.csdn.net/source/751774 代码如下/*Destination: 文件型日志封装类 v0.2Author: llbirdEmail: wushaojian@
2008-11-05 10:26:00
4810
12
原创 重新修订并发布文件日志类(WIN32 , C++)
对于日志 , 一般在工业24小时执行的程序很多见, 通常的用就是法记录文本信息.。这次提供的C++类命名为CxLog, 提供文本记录, 多参数格式化文本纪录, 二进制数据参照常见16进制编辑器纪录,对常见编译器的异常提供便捷的记录接口。本次提供的类支持多线程,本身也是依赖守护线程执行,也采用了简单的单件模式,一个程序只会有一个实例,且不需要用户定义。同时支持UNICODE,支持常见
2008-04-10 15:50:00
6755
23
原创 笔记:VC增加UNICODE项目
1.Build/configuration/利用Add增加一个对应的项目拷贝,比如Win32 Debug --> Win32 Unicode Debug2.Project/Setting修改General对应的项目文档输出,会默认修改修改C++/Preprocessor :添加_UNICODE和UNICODELink/Output: Entry-Point Symbol 填入
2008-04-08 16:53:00
1821
原创 CnComm 1.3修订
前些天发布的CnComm 1.3由于使用插入代码功能,一些字符串被blog的程序给改了,程序无法使用;如////.//COM被改成了//./COM等;另外线程函数有一段测试用的代码改错了现在修订将if(!::WaitCommEvent(_hCommHandle, &dwMask, &_WaitOverlapped)) { if(::GetLast
2007-09-24 15:25:00
4303
24
原创 线程定时器类
/**//*TimerThread (WIN32) free version 1.2 for WIN2000Compiled by: BC++ 5(free tool); C++ BUILDER 4, 5, 6, X; VC++ 5, 6, 7, 8; GCC;Writer: llbird Mail : wushaojian@21cn.com Blog : http://blog
2007-09-21 11:26:00
3395
1
原创 CnComm 1.3 的用法
案例:假如发送间隔发送一个字符串,间隔时间、长度不确定,没有起始、结束的标志;可以确定是发送端一口气发送完后字符串,并且能够假定有最大长度,如何处理;cnComm 1.3可以一定程度的解决这个问题;假设字符串的最大长度为20,设定每次读为3倍的最大长度即60;不能确定的就尽可能大一点;class MyCom : public CxComm{ virtual void OnReceiv
2007-09-21 10:49:00
7677
23
原创 CnComm 1.3
/*cnComm Serial Port Library(WIN32) free version 1.3Compiled by: BC++ 5(free tool); C++ BUILDER 4, 5, 6, X; VC++ 5, 6, 7, 8; GCC;Writer: llbird Mail : wushaojian@21cn.com Blog : http:///blog.csdn.
2007-09-21 10:24:00
7052
3
原创 简单易用的日志c++版本
以下为源代码,追求的就是简单易用,有两个文件log.h和log.cpp,用法太简单,我都懒得说了,呵呵//log.h#ifndef _LOG_H_#define _LOG_H_/*LOG Library(WIN98/NT/2000) ver 0.1Compile by: BC++ 5; C++ BUILDER 4, 5, 6, X; VC++ 5, 6; VC.NET; GCC;
2007-04-16 12:55:00
3478
原创 利用cnComm的串口一般性用法之二
上一篇文章的案例,即有一个以/x2开头、一个以/x3结束的的数据报的接收,以下是另一种方案源代码:(注未经测试,请注意看思路)class MyComm : public cnComm{ void OnReceive() { char buffer[1024]; static char data[1024];//数据报暂时存储 static data_index;//指针索引
2006-12-15 19:26:00
5833
2
原创 关于cnComm串口类库的问题解决方案,就是很多人说的只读几个字节的问题
我收到许多来信,都问我为什么Read函数只读几个字节 ,我都快被问晕了。当然这不是我的库的问题,这是很基本的通讯问题,因为通讯中传输需要时间,当你选择异步模式时你应该注意,这时候Read函数是非阻塞状态,意味着Read函数会迅速扫描缓冲区,把缓冲区里的字节读出来,这时候缓冲区里有多少字节就读多少字节,字节的多少取决于通讯速度与你计算机速度,你通讯越快,读得越多,计算机越快读得越少,这个容易理解
2006-11-23 18:55:00
9149
11
原创 C/C++细节笔记(不断添加ing...)
记笔记,很久没认真学习了,被别人一考就不行了,特别是一些细节,打算以后搜集一些细节的问题1、#pragma pack(n) 的作用?n 为1, 2, 4, 8, 16任意值,表示字节对齐,适用于通信、不同CPU的二进制兼容,许多单位喜欢面试该提例:#pragma pack(1)struct{ char c; long ld;};//sizeof :char(1) + lon
2006-05-14 01:55:00
3837
1
原创 extern "C" 的用意
前些天,编程序是用到了很久以前写的C程序,想把里面的函数利用起来,连接发现出现了找不到具体函数的错误:以下是假设旧的C程序库C的头文件/*-----------c.h--------------*/#ifndef _C_H_#define _C_H_extern int add(int x, int y);#endifC的源文件/*-----------c.c-
2006-05-03 14:22:00
16390
20
原创 简易XML解析器(C++)
XML在web的应用是很广泛的,但对于普通c++程序员恐怕用得不多,xml灵活的格式使得一些设置文件描述变得很容易,但是应用他总是困难的,网络上XML解析器庞大的吓人,如果为了解析很简单的XML也要学习一大堆库有点恐怖,反正我是没兴趣,用MSXML版本的不同也很烦人,COM的应用也很啰嗦,所以我写了一个简单的解析器,可以供简单应用,高手就不要看了,这个解析器只支持XML的子集如下:(用
2006-05-02 14:14:00
8101
10
原创 vc6-->vc2003 给我的一些困惑
头一回试用VS2003发现vector vec;char * p= vec.begin();编译错误原来要char * p = & *vec.begin();才可以;在刚刚开始,不知道还有多少兼容性的问题,可能原来许多代码都不可以使用 !WTL 的ActiveX控件会有ASSERT错误ATLASSERT(!InlineIsEqualGUID(*m_plibid, G
2006-02-28 16:24:00
2462
1
原创 串口类库 v1.1
/*发现一些网友在同步应用中出错本次修改增加ReadSync用于同步应用,原来的Read无法同步应用因为COMSTAT Stat;DWORD dwError;if(::ClearCommError(_hCommHandle, &dwError, &Stat) && dwError > 0){ ::PurgeComm(_hCommHandle, PURGE_RXABORT | PURGE_RX
2005-08-05 15:42:00
5625
23
原创 state设计模式学习, 一个C++的实现
State的用意在于,允许一个对象在其内部状态改变时改变它的行为; State模拟Context的相关行为接口, 针对具体的状态, 利用虚函数的机制映射到相应的行为, 从而避免大量的条件语句, 使得代码更加清晰, 并且易于维护;当然这样见带来大量的子类, 维护这些类也是要代价的; 这里我做了一个简单的C++实现, 模拟门的打开关闭状态,
2004-12-17 09:27:00
2211
原创 内存池的简单试验(C++)
这是试验性的程序, 虽然算法实现简弱, 当在编译器优化后实验结果,性能比用全局new delete的内存管理好了很多,我这里有考虑到多线程看来在大量使用内存分配的程序,用内存池是能够显著提高性能的;有时间我会改进算法,有高手看到, 请指点一二, 我是非专业的, 算法方面很弱;还有数组的内存分配遇到了一些问题;以下数组的内存分配的一般模式void * operator new[](size_t si
2004-12-06 16:01:00
2040
9
原创 全排列的泛型算法的简单实现
以下是一个全排列的泛型算法的简单实现;我用它生成测试序列可以用于一些代码的测试;顺便研究一下泛型算法;下面的实现还是较初级, 还有待改进;#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include #include #include using namespace s
2004-11-26 17:42:00
1635
原创 串口基础类库(WIN32)稳定版本 Version 1.0 (2004/12)
/*这个版本是12月份的稳定版本, 有不少网友试用过, 也给我不少宝贵的意见, 因为较稳定, 也适合大多数应用场合, 不会有太多的改动,故我决定版本定位1.0;欢迎来信反馈;修正内容:Read()函数不在读取内容后加/0;新增ReadString()函数在读取内容后加/0;这个修改可能会引起原来的代码出错;其他为零星的修改, 且不会影响原来的代码; if(Stat.cbInQue >= _
2004-11-14 08:50:00
6125
26
原创 原创串口类库v2的使用范例,很简单,高手勿入
有不少朋友来信问我上次发表的串口类库得使用方法;我这里有个简单的程序, 有需要的朋友可以看一看;cnComm.h见http://blog.csdn.net/wujian53/archive/2004/10/23/148385.aspxC++ code colored by C++2HTML.comment { color: #999999; font-style
2004-11-09 11:10:00
4493
19
原创 网络同步校时UDP服务器端SDK代码(RFC868/C++/WIN32/SOCKET/UDP)
#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#
2004-11-04 18:45:00
2378
1
原创 网络同步校时TCP服务器端SDK代码(RFC868/C++/WIN32/SOCKET/TCP/select)
//以下是一段服务器端SDK代码, 较简单, 稍加修改可应用于NT服务程序中//仅供初学者参考, 高手勿入, 谢谢#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include #include #include #include #include #include #i
2004-11-03 19:38:00
2291
原创 网络同步校时客户端代码(RFC868/C++/WIN32/SOCKET)
大量的工业机肯定需要同步校时, 故去察看了RFC868, 我就试编了一个获得网络时间的小程序, 大家可以借鉴到自己的同步校时程序, 只是试验,所以程序结构并不严谨, 过一段时间我会把服务器段的代码贴出,今天先发布客户端:#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include u
2004-11-02 18:23:00
4017
8
原创 原创win32线程池代码(WinApi/C++), 健壮, 高效,易用,易于扩展, 可用于任何C++编译器
//说明, 这段代码我用了很久, 我删除了自动调整规模的代码(因为他还不成熟)/******************************************************************* Thread Pool For Win32 * VC++ 6, BC++ 5.5(Free), GCC(Free)* Update : 2004.6.9 llBird wush
2004-11-01 16:44:00
4943
16
原创 较完整的串口类(WINAPI/C++/源码),解决10以上端口,合理结束线程等问题
串口在工业应用是极为普遍的,我用API封装了同步和异步的串口类,以及一个具有监视线程的异步串口类;使用简单高效,具有工业强度,我在BC, BCB, VC, BCBX, GCC下编译通过,相信足够应付大多数情况,而且还可以继承扩展,下面简单介绍使用方法, 后附源代码(_com.h); 库的层次结构: _base_com:虚基类,基本接口,可自行扩展自己的串口类
2004-10-15 14:54:00
9491
3
CnCommv1.5源码、范例及文档
2009-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人