C/C++
wujian53
这个作者很懒,什么都没留下…
展开
-
全排列的泛型算法的简单实现
以下是一个全排列的泛型算法的简单实现;我用它生成测试序列可以用于一些代码的测试;顺便研究一下泛型算法;下面的实现还是较初级, 还有待改进;#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include #include #include using namespace s原创 2004-11-26 17:42:00 · 1639 阅读 · 0 评论 -
重新修订并发布文件日志类(WIN32 , C++)
对于日志 , 一般在工业24小时执行的程序很多见, 通常的用就是法记录文本信息.。这次提供的C++类命名为CxLog, 提供文本记录, 多参数格式化文本纪录, 二进制数据参照常见16进制编辑器纪录,对常见编译器的异常提供便捷的记录接口。本次提供的类支持多线程,本身也是依赖守护线程执行,也采用了简单的单件模式,一个程序只会有一个实例,且不需要用户定义。同时支持UNICODE,支持常见原创 2008-04-10 15:50:00 · 6762 阅读 · 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 · 1825 阅读 · 0 评论 -
线程定时器类
/**//*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 · 3398 阅读 · 1 评论 -
CnComm 1.3修订
前些天发布的CnComm 1.3由于使用插入代码功能,一些字符串被blog的程序给改了,程序无法使用;如////.//COM被改成了//./COM等;另外线程函数有一段测试用的代码改错了现在修订将if(!::WaitCommEvent(_hCommHandle, &dwMask, &_WaitOverlapped)) { if(::GetLast原创 2007-09-24 15:25:00 · 4305 阅读 · 24 评论 -
简单易用的日志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 阅读 · 0 评论 -
利用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 · 5841 阅读 · 2 评论 -
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 · 3846 阅读 · 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 · 16419 阅读 · 20 评论 -
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 · 2465 阅读 · 1 评论 -
state设计模式学习, 一个C++的实现
State的用意在于,允许一个对象在其内部状态改变时改变它的行为; State模拟Context的相关行为接口, 针对具体的状态, 利用虚函数的机制映射到相应的行为, 从而避免大量的条件语句, 使得代码更加清晰, 并且易于维护;当然这样见带来大量的子类, 维护这些类也是要代价的; 这里我做了一个简单的C++实现, 模拟门的打开关闭状态,原创 2004-12-17 09:27:00 · 2218 阅读 · 0 评论 -
Windows结构性异常处理封装类
学习软件工程时有句老话,“不存在没有错误的程序”,十余年历练,各种错误如影随行一如鬼魅,由此看真理是不需要检验的,你只需要信仰就可以了。Windows的程序员对于上图应用程序崩溃的对话框应该再熟悉不过,这是所谓的结构性异常的默认处理方式。空指针读写、数组越界、除零错误、溢出等严重错误,Windows都将产生结构性异常。由于MFC的框架并不提供结构性异常的封装,所以无论使用SDK或者M原创 2009-05-14 11:24:00 · 2643 阅读 · 1 评论