自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(51)
  • 资源 (7)
  • 收藏
  • 关注

原创 设计模式备忘

编程是一门技术,更加是一门艺术一、 简单工厂模式1.      程序中注意点:1)变量命名要有意义。像:n1,n2等无意义的变量;  nResult则表示结果意义。2)多分支时,能用switch则用switch。避免多个if。3)除法注意除数为0.        2.    实例:曹操吟诗,工匠刻版,需求改变时,耦合度过高而不灵活。   面向对象(继承、封装、多态)的好

2013-10-10 10:40:21 100

原创 cmake初步使用

cmake 实践如果只有几个文件,可以直接写Makefile,但是如果工程很大,则cmake省事很多。1. cmake的Hello world创建两个文件:main.c  CMakeLists.txt(注意文件名大小写,大小写相关)1)main.c#include int main(){ printf("hello world!"); return 0;}

2013-09-11 16:03:34 541

原创 gcc中__attribute__ ((constructor(101)))做成.a库成功链接

1.cpp:------------------------------------------------#includeint test() __attribute__ ((constructor(101)));int test(){printf("\n--In lib--");return 0;}test.cpp //没有call 1.cpp中方法,但是希望在

2013-09-05 13:43:58 687

原创 dll lib小知识

.dll是在你的程序运行的时候才连接的文件,因此它是一种比较小的可执行文件格式..lib是在你的程序编译连接的时候就连接的文件,因此你必须告知编译器连接的lib文件在那里,lib文件也被称为是静态连接库.lib是编译时需要的,dll是运行时需要的如果你想使用lib文件,就必须: 1 包含一个对应的头文件告知编译器lib文件里面的具体内容 2 设置lib文件允许编译器去查找已

2013-08-06 18:01:56 379

原创 fcntl记录锁实例

fcntl 函数是一个相当常用的对文件进行加锁操作的函数。文件锁包括强制锁、建议锁、记录锁, 不过一般系统和内核都是用的强制锁。以下为记录锁的例子:-----------------------------------------------记录锁分为读锁、写锁。。读锁是共享锁,可以有多把,多个进程可以同时对一个文件读。写锁是互斥锁,同一时间只能有一个进程写文件。fcn

2013-08-01 18:09:43 1204

转载 linux inode理解(部分转载)

一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是

2013-07-16 22:31:55 1233

原创 查找

// ttt.cpp : //#include"stdafx.h"#include#includeusingstd::cout;usingstd::endl;#defineSIZE 8#if0int board[SIZE][SIZE] = {{1,1,5,5,1},{1,

2013-06-28 17:05:04 423

原创 用VS2005编译生成Lua库文件和解释器

TMD,本来很简单的东西,网上说的乱七八糟,说的也不明白,大家抄来抄去,估计都不自己实践的。。花了半个下午研究了一下,总结一下。1)下载lua工程文件,地址为http://www.lua.org/ftp/,我下载的lua-5.1.3.tar.gz版本;开始时我下载的是最新版本,结果没有.bat文件,费了好多时间,TMD。所以,如果想方便,就下载这个版本的。2)下载后,在Linux下面解压t

2013-06-27 16:25:06 1214

原创 linux信号总结

1. 每个信号都有一个名字,都以SIG开头。 信号被定义为正整数。 不存在编号为0的信号。     头文件是:signal.h2. 信号是异步事件。产生信号的事件对进程而言是随机的,进程必须告诉内核,当此信号发生时候,请执行以下操作。3. 信号处理方式,有三种:     1)忽略信号。  但是SIGKILL和SIGSTOP不能忽略。     2)捕捉信号。 通知内核在某个信号发

2013-04-11 22:52:36 2579

原创 守护进程+记录锁阻止程序重复运行

守护进程:void Init_Daemon(){    int pid;    pid = fork();    if(pid > 0)         //parent        exit(0);    else if(pid         exit(1);    //子进程继续执行。父进程终止    setsid();     if(pid =

2013-03-21 18:47:09 659

原创 结构体内存对齐问题,方便理解内存对齐导致的结构体大小问题

结构体内存对齐:为了提高CPU的存储速度,VC对一些变量的起始地址做了“对齐”处理。在默认情况下,VC规定各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。structMyStruct { double dda1; char dda; int type }; 对结构MyStruct采用sizeof会出现什么结果呢?s

2013-02-22 09:43:32 646

原创 简单聊天工具,未添加传输文件的过程,道理类似

聊天程序,Client端代码及解释:1)各Client上线,通过客户端list列表可以查看在线用户,双击在线用户,即可交谈。2)Client交流内容需要经过Server端,这样可以保证信息过滤。核心:在服务端定义一个map,保存客户端IP:Port和socket对应关系      客户端上线后,在服务端保存Client的localName:ip:port到一个双向链表中,方便添加删

2013-01-15 11:09:50 900 1

原创 简单聊天工具,未添加传输文件的过程,道理类似

接上面Server部分  五、DealMsg.h/********************************************************************File name:      DealMsg.hAuthor:  lieyingshengbao   Version:        1.0  Date:           20

2013-01-15 11:07:14 445

原创 简单聊天工具,未添加传输文件的过程,道理类似

聊天程序,Server端代码及解释:1)各Client上线,通过客户端list列表可以查看在线用户,双击在线用户,即可打开窗口交谈。2)交流方式:Client交流内容需要经过Server端,这样可以保证信息过滤。核心:在服务端定义一个map,保存客户端IP:Port和socket对应关系。      客户端上线后,在服务端保存Client的localName:ip:port到一个双

2013-01-15 11:06:09 405

转载 MFC实现状态栏(转)

1.首先在string table 里添加两个字串,ID分别为IDS_INDICATOR_MESSAGE and IDS_INDICATOR_TIME2.在你的 dlg.h 类里面加个 CStatusBar m_bar;3.在dlg.cpp 开头加上static UINT indicators[] ={     IDS_INDICATOR_MESSAGE,     IDS_

2013-01-05 13:52:00 425

原创 MFC画线

MFC画线:1、画线:   1)DrawView.h中:      定义CPoint m_ptOrign;      DrawView.cpp中:      在DrawView的OnLButtonDown消息中,      //鼠标按下消息      保存鼠标左键按下的point。  m_ptOrign = point;      在DrawView的OnLButton

2012-12-14 13:54:28 5468

原创 MFC几种常用tools加载

1. 基于Dialog添加菜单Menu  1)先添加菜单(IDR_MENU1)资源,加上需要的菜单项。  2)在对话框的属性中选择Menu加载IDR_MENU1即可。注意:如果想通过代码方式在程序中生成Menu:  1)在Dlg.h中定义:CMenu  m_menu;           //此变量不能定义为局部变量  2)在Dlg.cpp的OnInitDialog()中:

2012-12-13 18:01:29 753

原创 C++可扩展的编程模式

注意:设计原则----尽量不要去修改基类内容,有新的东西要从派生类中去实现。层层派生。派生模式使得可扩展、#ifndef WIN_32_TEST_H#define WIN_32_TEST_H#include #include #include using std::endl;using std::cout;using std::string;//钟表的几种颜色

2012-12-13 14:54:28 514

转载 CMarkupstl解析XML结构,比较简单

MarkupSTL.h// MarkupSTL.h: interface for the CMarkupSTL class.//// Markup Release 8.1// Copyright (C) 1999-2005 First Objective Software, Inc. All rights reserved// Go to www.firstobject.com

2012-12-08 15:17:51 70

原创 哈希表建表、查找元素

//根据关键字和哈希函数,建立哈希表,基于线性探测再散列解决冲突方法。void BuildHashTable(int cArryKey[], int cArryHashTable[], int nLen){ int *pKey = cArryKey; int *pHashTable = cArryHashTable; bool *pMark = new bool[nLen];

2012-11-29 16:52:00 650

原创 编码转换的方法(UNICODE/ASCII/UTF-8)

参考了网上一些方法:所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.  而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.   常用的代码页有CP_ACP和CP_UTF8两个。   使用CP_ACP代码页就实现了ANSI与Unicode之间的转换。   使用CP_UTF8代码页就实现了UTF-8与Unicode之间的转换。 1.  AS

2012-11-28 16:01:42 5083

原创 二分法查找

优点:查找速度快;平均性能好;缺点:必须是有序表 思路:假设表中元素按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功; 否则利用中间位置将表分成前后两部分,若中间位置的记录关键字大于查找关键字,则进一步查找前一字表、否则查找后一字表。。重复过程,直到成功或失败。int BinSearch(int a[], int nBeginPos, int nEnd

2012-11-26 20:01:28 446

原创 线程池实现接收消息,任务分发器按照CommandId分发给不同处理器处理。(之前不够完善,现在是修改、测试通过了)

按照文件排序:1. ThreadPoolBase.h/********************************************************************File name:     ThreadPoolBase.hAuthor:   lieyingshengbao   Version:        1.0  Date:

2012-11-23 10:11:10 1822

原创 VC++第一讲程序---WinMain

/********************************************************************File name:     WinMainAuthor:   lieyingshengbao   Version:        1.0  Date:           2012-11-22Description:    本文件提供Win

2012-11-22 10:16:33 430

原创 MFC 实现划线左右滚动(有闪屏问题,双缓冲技术未解决)

#define IDR_MENU_SET                    1115#define ID_SET_WIDTHCOLOR               1116 #define Black RGB(0,0,0)#define Red RGB(255,0,0)#define Green RGB(0,255,0)#define Blue RGB(0,0,255)

2012-11-14 15:04:35 797

原创 C++实现Huffman树

#include "stdafx.h"#include using std::cout;using std::cin;using std::endl; //存储HuffmanTree的数据结构typedef struct tagHuffmanTree{ unsigned int nWeight; unsigned int nParent,nLchild,nR

2012-10-24 14:13:30 1283

原创 C++实现Huffman树

#include "stdafx.h"#include using std::cout;using std::cin;using std::endl; //存储HuffmanTree的数据结构typedef struct tagHuffmanTree{ unsigned int nWeight; unsigned int nParent,nLchild,nR

2012-10-24 13:55:35 154

原创 C++ 操作符重载

1.  通过操作符重载,程序员能针对类类型的操作数定义不同的操作符版本。2.  重载操作符是具有特殊名称的函数:保留字operator后接需定义的操作符符号。     重载操作符的形参数目(包括this指针)要与操作符的操作数数目相同。例如:二元操作符则需要两个形参;一元操作符只需要一个形参。3.  重载操作符必须具有至少一个类类型或枚举类型的操作数。这条规则强制重载操作符不能重定义用

2012-10-22 11:15:21 364

原创 C++ 友元

一、使用方法:               1.在类体内进行说明(在函数前加上friend关键字)               2.在类体外进行实现。参数是传递的类对象               3.调用时,同普通函数一样,不要像成员函数那样调用。        注意点:   友元不是成员函数,但是它可以访问类中的私有成员.但是它破坏了类的封装性和隐藏性.        友元

2012-10-21 10:59:37 469

原创 C++ 复制构造函数

1. 概念:只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰)。2. 首先看一个小例子:.h中:class Test{public:    Test(int m,float n):a(m),b(n) { }private:    int a;    float b;};.cpp中:int  main(){      Test

2012-10-19 11:51:10 501

原创 C++ 复制构造函数

1. 概念:只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰)。2. 首先看一个小例子:.h中:class Test{public:    Test(int m,float n):a(m),b(n) { }private:    int a;    float b;};.cpp中:int  main(){      Test

2012-10-19 11:01:34 117

原创 常用数据结构---线索二叉树(包括线索化二叉树和遍历)

// ThreadTree.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include using namespace std;typedef enum Symbol{ link, Thread}Symbl;typedef struct tag

2012-10-17 14:21:02 723

原创 常用数据结构---非递归中序遍历二叉树(利用栈)

// Tree.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include using namespace std;const int STACKSIZE = 10;const int INCREASEMENT = 10;enum Symbol{

2012-10-17 14:19:53 611

原创 常用数据结构---栈

// Stack.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include using std::cout;using std::endl;#define STACK_INIT_SIZE 100#define STACKINCREASEMENT 10

2012-10-17 14:18:33 217

原创 常用数据结构----队列

// Queue.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include using namespace std;enum Symbol{ Success, Failed};typedef struct tagNode

2012-10-17 14:05:23 206

原创 常用数据结构---双链表

// DoubleList.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include using std::cout;using std::endl;typedef struct tagDoubleList{ int nData; struct

2012-10-17 14:04:00 455

原创 常用数据结构---单链表实例

#include "stdafx.h"#include using std::cout;using std::endl;typedef struct tagList{ int nData; struct tagList *pNext;}List_S;int _tmain(int argc, _TCHAR* argv[]){ List_S* pNode

2012-10-17 14:03:12 392

原创 Windows下“通用线程池+消息分发器+消息处理器”----架构流程说明

总体上,服务器端管理类是程序入口:第一条线(接收):接收线程池接收消息,将消息丢入消息队列中。(多线程同步)第二条线(取消息处理):消息处理器(派生类)在消息分发器中注册,即将“消息的CommandId”和“消息处理方法”建立对应关系。 由消息分发器循环从消息队列中取消息,丢到相应的消息处理方法中去处理。

2012-09-28 17:14:32 689

原创 Windows下“通用线程池+消息分发器+消息处理器”-----服务器端管理类

1.ServerManager.h/********************************************************************File name:      ServerManager.hAuthor:   lieyingshengbao   Version:        1.0  Date:           2012-09-

2012-09-28 17:07:59 753

原创 Windows下“通用线程池+消息分发器+消息处理器”-----消息分发器类

1.MsgDispatcher.h/********************************************************************File name:      MsgDispatcher.hAuthor:   lieyingshengbao   Version:        1.0  Date:           2012-09-

2012-09-28 17:06:50 613

socket资源

windows socket编程寻找的一些资料,以备使用

2011-09-20

.NET平台+C#语言+Sql server编写宾馆管理系统。

.NET平台+C#语言+Sql server编写宾馆管理系统。

2011-04-25

计算机考研真题~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 计算机考研真题

2009-06-18

汇编课件,适合汇编初级学习者学习

适合汇编初级学习者学习,希望大家共同进步。建议搞懂里面的所有东西

2009-06-18

C语言程序设计100例

经典C程序100个示例

2008-01-31

Visual Basic程序设计教程

快速了解VisualBasic

2008-01-30

密码学简介

学习密码学的好帮手啊

2008-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除