自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (24)
  • 收藏
  • 关注

原创 临界区,互斥量,信号量,事件的区别

临界区(Critical Section)仅允许一个线程同时访问同享资源,进程内使用。需要资源少,速度快。如果共享资源只使用于同一进程内,推荐使用临界区。互斥量(Mutex) 仅允许一个线程同时访问同享资源。创建互斥量可以命名,所以可跨进程使用。需要资源多于临界区。信号量(Semaphore)允许一个或多个线程中有限数量的线程同时访问共享资源,可跨进程使用。事件(Event

2015-11-02 20:22:56 488 1

原创 常用编码总结

GBK,GB2312 一个英文符号用一个字节存储,算一个字符,编码与ASCⅡ相同。一个汉字用两个字节存储,算两个字符。 Unicode(UCS) 一个符号集,没有规定二进制代码如何存储。一个符号用两个字节,算一个字符。 UTF-8 Unicode的实现方式之一一个符号用1到4个字节 UTF-8的编码规则很简单,只有二条: 1)对于

2015-10-15 16:32:05 434

原创 UML学习之类图关系

1.泛化(继承) 2.实现3.关联 是一种拥有的关系。4.聚合是整体与部分的关系,且部分可以离开整体而单独存在。5.组合是整体与部分的关系,但部分不能离开整体而单独存在。6.依赖是一种使用的关系。

2015-10-08 20:19:39 390

原创 我的第一个驱动程序

////////////////////////////HelloDDK.C//////////////////////////#include #define PAGEDCODE code_seg("PAGE")#define LOCKEDCODE code_seg()#define INITCODE code_seg("INIT")#define PAGEDDATA data_seg(

2010-02-03 17:55:00 749

原创 简单排序

#includevoid BubbleSort(int *num){    for(int i=1; i {  for(int j=6-1; j>=1; j--)  {   if(num[j] > num[j+1])   {    int temp = 0;    temp = num[j];    num[j] = num[j+1];    num[j+1] = temp;   }  } }

2010-01-28 17:12:00 398

原创 队列实现

#includeclass node{public: int data; node *plink;};class List{public: node *head;public: List() {  head = NULL; } ~List() {  node *temp;  while(head)  {   temp = head->plink;   delete head;   head =

2010-01-28 17:10:00 393

原创 栈实现

#includeclass node{public: int data; node *plink;};class List{public: node *head;public: List() {  head = NULL; } ~List() {  node *temp;  while(head)  {   temp = head->plink;   delete head;   head =

2010-01-28 17:09:00 452

原创 链表实现

#includeclass node{public: int data; node *plink;};class List{public: node *head;public: List() {  head = NULL; } ~List() {  node *temp;  while(head)  {   temp = head->plink;   delete head;   head =

2010-01-28 17:08:00 380

转载 linux常用目录的作用[转]

bin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。 /boot 这里存放的是启动Linux时使用的一些核心文件。 /dev dev是device(设备)的缩写。这个目录下是所有Linux的外部设备,其功能类似DOS下的.sys和Win下的.vxd。在Linux中设备和文件是用同种方法访问的。例如:/dev/hda代表第

2010-01-08 22:00:00 439

转载 linux常用命令[转]

LINUX常用命令(基础)1. man 对你熟悉或不熟悉的命令提供帮助解释eg:man ls 就可以查看ls相关的用法注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。2. ls 查看目录或者文件的属*,列举出任一目录下面的文件eg: ls /usr/manls -la.d表示目录(directory),如果是一个"-"表示是文件,如果

2010-01-08 21:59:00 449

转载 linux操作系统下c语言编程入门 [转]-----非常经典的文章

linux操作系统下c语言编程入门 整理编写:007xiong 原文:Hoyt等 (一)目录介绍 1)Linux程序设计入门--基础知识 2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计

2010-01-08 14:27:00 3477

原创 vim文字补全插件word_complete的使用

把word_complete.vim文件放到vim的安装目录下的plugin中.  然后在vimrc文件中配置. let g:WC_min_len=3 当输入到第3个字母时才自动补全,自己可以改变.:autocmd BufEnter * call DoWordComplete() 每个buffer自动启用自动补全.

2010-01-01 17:51:00 2704

原创 vim插件taglist的使用

taglist可以显示文件中的宏,全局变量,函数等。并可以在用户点击tag时切换到tag定义的位置。 要使用taglist插件,必须满足:打开vim的文件类型自动检测功能;系统中装有ctags,并taglist能够找到此工具;你的vim支持system调用; 下载并解压taglist包后,里面包含doc,plugin目录.把这个目录中的文件拷贝到vim相应的目录中.

2010-01-01 17:35:00 1193 1

原创 使用vim编辑和打开多个文件

使用vim打开多个文件:vim file1 file2 file3 file4 ... 使用vim编辑多个文件1.下载vim的插件Buffer Explorer,解压.2.解压后的文件复制到docs和plugin.3.重启vim.使用"/be"就可以直接看到全部打开的文件列表.4.还可以使用"s"对文件列表进行排序

2009-12-30 20:37:00 519

原创 文件IO和标准IO的比较

文件IO和标准IO的比较文件IO是一种不带缓冲机制,需要自己建立缓冲区的低级IO。标准IO自己带有缓冲区。 各自使用的函数如下. 文件IOopenclosereadwritelseek 标准IOfopenfclosegetc,fscanf,fgetsputc,fputs,fprintffseek,ftell 进程默认产生的三个文件

2009-12-11 11:24:00 509

原创 linux的标准输入输出和重定向

标准输入输出: 我们知道,执行一个shell命令时通常会打开三个标准文件,即标准输入文件stdin,通常对应终端的键盘;标准输出文件stdout和标准错误文件stderr,这两个文件都对应终端的屏幕。进程将从标准输入文件中取得数据,将正常输出数据到标准输出文件,而错误信息送到标准错误文件中。 输入和输出重定向: 输入重定向是指把命令的标准输入重定向到指定的文件中。输出重

2009-12-06 14:54:00 1148

原创 我的第一个make file

终于弄好了第一个make file,写文章纪念一下. 程序写在test.c里面,用到了libmisc.a 我的Makefile: test: test.c libmisc.a(TAB) gcc tets.c libmisc.a -o test 说明:gcc前需要有一个TAB, 否则会报类似下面的错误Makefile:2: *** 遗漏分隔符 make

2009-12-04 20:36:00 375

原创 安装配置proftpd

终于在linux下弄好ftp了,虽然只是点皮毛,但我还是得把这个记下来,查了好久资料啊。 我选择的是proftpd,为什么选择这个,我也不知道,别人说这个好,呵呵。 从chinaunix下把安装文件下下来,解压,然后从终端进到解压后的目录。 #./configure --prefix = /usr/local/proftpd #make #make inst

2009-11-26 21:49:00 395

原创 vi/vim命令

vi file_name     打开文件i   切换到插入模式esc 切换到命令行模式: 切换到低行模式wq 退出vi并保存文件set nu 显示行数  下面是常用的编辑指令 删除文字  「x」:每按一次,删除光标所在位置的“后面”一个字符。  「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。  「X」:大写的X,每按一次,删除

2009-11-19 14:30:00 424

原创 李开复-----成长的十个启示

1自信不失谦虚,谦虚不失自信。 2天赋就是兴趣,兴趣就是天赋。3思考比传道更重要,观点比解惑更重要。4我不同意你,但是我支持你。5挫折不是惩罚,而是学习的机会。6创新不重要,有用的创新才重要。7完美的工作:学习成长,兴趣,影响力。8用勇气改变可以改变的事情,用胸怀接受不可以改变的事情,用智慧分辨两者的不同。9最好的领导,让你的员工学习

2009-10-24 21:55:00 629

转载 static用法小结[转]

static关键字是C,   C++中都存在的关键字,   它主要有三种使用方式,   其中前两种只指在C语言中使用,   第三种在C++中使用(C,C++中具体细微操作不尽相同,   本文以C++为准).     (1)局部静态变量     (2)外部静态变量/函数     (3)静态数据成员/成员函数     下面就这三种使用方式及注意事项分别说明         一、局部静态变量     在

2009-10-15 18:02:00 383

转载 堆和栈的区别(转过无数次的文章)[转帖]

 一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两回事,分配方式倒是

2009-10-09 10:25:00 428

转载 指针与数组的区别与联系[完整版][转帖]

指针与数组的区别与联系[完整版]2008-05-02 20:501.把数组作为参数传递的时候,会退化为指针数组名作为函数形参时,在函数体内,其失去了本身的内涵,仅仅只是一个指针; 很遗憾,在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。 所以,数据名作为函数形参时,其全面沦落为一个普通指针!它的贵族身份被剥夺,成了一个地地道道的只拥有4个字

2009-10-07 10:21:00 1640

转载 指针和引用的区别[转帖]

引用是一种没有指针语法的指针.与指针一样,引用提供对对象的间接访问.--《c++ primer》p29虽然引用也可以被用作一种指针,但是象对指针一样用一个对象的地址初始化一个引用却是错误的。例如:int i=0;int &refi=i; //ok,refi指向一个i的引用//int &refi=&i; 错误,不能用指针初始化引用一旦引用已定义,它就不能再指向其他的对象(这也是为什么必须要被初始化的

2009-10-04 16:39:00 568

原创 float与double类型的内存分布,精度和范围

2009-09-22 11:18:00 1774 2

原创 float与double类型的内存分布,精度和范围

float与double类型的内存分布,精度和范围  内存分布: C/c++的浮点数据类型有float和double两种。 float大小为4字节,内存中的存储方式如下:符号位(1bit)指数(8bit)尾数(23bit) double大小为8字节,内存中的存储方式如下:符号位(1bit)指数(11bit)尾数(52bit) 符号位决定浮点数的正负,0正1负。指数和

2009-09-22 10:01:00 8373

原创 文件选择对话框,文件夹浏览

文件选择对话框,文件夹浏览   char szInitPath[MAX_PATH]={0}; strcpy(szInitPath,g_strOrigPath); if(m_bIsFile) {  CFileDialog filedlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_ALLOWMULTISELECT,"Files(*.*)|*.*||");  file

2009-09-19 09:59:00 940

原创 显示文件或文件夹的属性

SHELLEXECUTEINFO ShExecInfo ={0};ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;ShExecInfo.hwnd = NULL;ShExecInfo.lpVerb = "properties";ShExecInfo.lpFile = "c:/

2009-09-19 09:58:00 590

原创 如何在用户区显示一张图片

如何在用户区显示一张位图  显示一张位图,基本的有以下三种形式:一、位图资源的显示(设资源ID为IDB——BITMAP1程序如下){    CBitmap bitmap;    CBitmap* pOldBitmap;    CDC MemDC;    MemDC.CreateCompatibleDC(&dc); ///建立与显示设备兼容的内存设备场境    bitmap.LoadBitmap(I

2009-09-19 09:57:00 457

原创 16进制转10进制

16进制-->10进制计算示例:1EBB-0-7=11;11*1=11;E-0-7=14;11*16=224;1-0=1;1*16*16=256;256+224+11=491就是10进制程序代码:unsigned long CFunPowTestDlg::strX2dwdD(CString strNum){ char* pch; int iNumLength = strNum.

2009-09-19 09:53:00 811

原创 通配符算法

// ?代表一个字符,*代表n个字符 BOOL WildCard(CString strWildCard, CString strTestText, BOOL &bMatch){ if(strWildCard.IsEmpty() && strTestText.IsEmpty()) {  bMatch = TRUE;  return TRUE; } else if(strWildCard.I

2009-09-19 09:51:00 742

转载 技术以外的功夫(转贴)

     记得看过冯仑的“赚钱以外的功夫”有感而发,写写我们IT人技术以外的功夫。    有时候发现做技术做长了,很多的人的性格都会发生变化,变得内向,变得封闭。有的会发现市场团队的开会,大家都你一言我一语,踊跃发言,争相斗艳。而有的时候程序员开会要么一声不吭,要么就会变成牢骚会,这需求不好,那个做法不对。    我们为何不换个角度看问题或者处理问题呢:我觉得如果这么做可能更好,如果那么做可以

2009-09-16 09:48:00 451

转载 设计log函数库的几个要点(转贴)

文章出处:http://www.limodev.cn/blog作者联系方式:李先静 只要留意一下大项目的源码,你会发现,几乎无一例外的包括一个log模块。它的功能很直观:记录一些程序运行时信息,多数情况是用来辅助debug的。大项目都有一套的log的函数,在它的基础上开发,调用它提供的Log函数就行了,比如linux内核、apache等。也有开源log函数库,可以直接拿过用。这里,我们并不鼓励重新

2009-09-15 15:05:00 1228 1

原创 计算机名和ip的转换

通过计算机名获得ipCString GetHostIP(LPCSTR szHostName){ CString csIP; WSAData wsaData;    WSAStartup(MAKEWORD(2, 0), &wsaData);      HOSTENT *lpHostEnt = gethostbyname(szHostName);  int m_IPNum = 0; for(int

2009-09-15 14:47:00 874

原创 函数调用规范

函数调用规范是指进行一次函数调用时所采用的传递参数的方法,返回值的处理以及调用堆栈的清理.Microsoftc/c++语言中采用了五中调用规范,分别是_cdecl,_stdcall,_fastcall,thiscall和nake.每一种调用都是利用eax返回,如果函数返回值是64位的,则利用edx:eax返回. 各种调用规范的参数传递方法和调用堆栈清理如下:_cdecl  堆栈清理者(

2009-09-15 14:39:00 466

c++ stl参考

c++ stl 的参考手册,描述了list,vector,map等的使用

2012-06-27

笔记(c,c++)

我几年的工作笔记,记录了比较容易出错的,难懂的一些c,c++知识。希望你喜欢。

2012-03-16

Effective C++中文版

Effective C++中文版 是一本经典的c++学习书籍。

2012-03-16

Windows驱动开发技术详解3

Windows驱动开发技术详解pdf+源代码

2010-02-03

Windows驱动开发技术详解2

Windows驱动开发技术详解pdf+源代码

2010-02-03

windows驱动开发技术详解1

windows驱动开发技术详解pdf+源代码

2010-02-03

编程高手箴言.pdf

编程高手箴言.pdf(清晰完整版) 系统地介绍了作为程序员需要掌握的原理性知识.

2010-01-12

Exceptional C++ style 学习笔记

Exceptional C++ style 学习笔记,绝对值得一看.

2008-06-14

opengl演示代码

opengl演示代码,涉及到基本操作,md2和3ds解析,粒子系统

2008-06-14

ini文件读写

ini文件读写演示,希望大家喜欢

2008-05-07

封装的Debug函数

封装了很多种情况,使用简单

2008-05-07

一个socker演示程序

一个socker演示程序,里面有一些好的编程技巧,希望大家喜欢

2008-05-07

一个小的ap hook程序

一个小的ap hook程序,希望大家喜欢

2008-05-07

一个简单的wdm程序

一个简单的wdm程序,麻雀虽小,5脏具全.

2008-05-07

扇区数据比较工具

这是一个扇区数据比较工具的代码,希望大家喜欢

2008-05-05

复合文件浏览器

本代码演示了如何操作复合文件

2008-04-29

c++ primer 笔记

这是我阅读c++primer后记录的不常见的知识

2008-04-15

空空如也

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

TA关注的人

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