自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(382)
  • 收藏
  • 关注

转载 什么时候用堆,什么时候用栈?

参考文章:《c++面试题之内存分配》一、首先,回顾一下c、c++的内存分配机制。 一个C、C++程序编译时内存分为5大存储区:堆区、栈区、静态区(全局区)、文字常量区(储存字符串常量)、程序代码区(存放二进制程序)下面主要阐述前面三个。(1)静态存储区域:静态存储区域的内存在程序编译时就已经分配好,这块内存在程序的整个

2016-03-28 17:39:20 1075

转载 IT专业人士如何高效的学习专业知识

最近听了一下微软TechNet的一些课程,对愈勇老师讲的IT人员的高效学习方法深有感触,记下了一点笔记,希望能够以后回顾一下,也与大家分享一下我的心得。IT知识相当庞杂,在知识的面前,我们常常会遇到两个问题:ü  选择太多,不知道学习什么ü  无从下手,进展缓慢面对这种问题,我们往往会感到很迷茫,然后去网络上搜集大量的资料,其实这对于我们来说,也是一种时间的浪费,因为学习的无效性。

2016-03-28 17:34:29 2410

转载 Windows驱动开发:用C还是C++

在做windows驱动程序开发之前,首先要确定开发的语言。在常见的编程语言中,我们可以选择C、C++、汇编语言甚至Delphi。不过由于微软提供的DDK开发环境所提供的文件和链接用的库只支持C和C++语言。所以一般都采用C或者C++。使用C语言,是比较容易上手,因为很多人都是从学习C语言而学习程序开发的,而在驱动开发的时候,用C语言写相对比较简单,不需要考虑太多的限制。用C++的话,在

2016-03-28 11:46:45 10356

转载 DDK翻译:IOCTL指令简介

IO控制指令(IOCTLs)主要用于用户态应用程序和驱动之间的沟通或者设备栈内驱动之间的沟通,这种指令通过IRP来进行传送。  用户态应用程序通过调用DeviceIoControl来向驱动程序发送IOCTLs,有关DeviceIoControl的详细内容,微软的Windows SDK文档中有详细的介绍。对DeviceIoControl的调用会促使I/O管理器产生一个IRP_MJ_D

2016-03-28 11:44:57 681

转载 第三讲:Windows驱动的结构

最近有点忙,一直没有时间来总结一下,好不容易逮着个有时间的星期天,静下心来,好好总结一下,完成未完成的系列教程,好了,废话少说,开题了。现在进行Windows驱动开发,主要有两种框架,一种是NT框架的驱动,一种是WDM框架的驱动程序,微软后来为了区分WDM驱动的,又推出了KMDF和UMDF两种框架,KMDF是针对内核态的驱动程序开发的框架,而UMDF是用户态的驱动程序的开发框架,这两个框架

2016-03-28 11:43:29 1047

转载 第二讲:我的第一个驱动

配置好了开发环境之后,下面就要通过具体的程序来了解驱动的开发了。下面我们以一个WDM驱动的框架来实现Windows驱动程序的HelloWorld。作为一个驱动程序,首先应该写的是它的入口函数,这点跟MFC的WinMain或者C++中的Main函数一样,驱动的入口函数使用DriverEntry。在入口函数中主要实现的功能是一些分发例程的注册以及其他的需要初始化的事务。DriverEn

2016-03-28 11:37:58 599

转载 第一讲:开发环境与工具篇

Windows驱动程序的开发,开发工具主要可以这样分:记事本、DriverStudio(DS)  +    Visual C++ 6.0或者VS2005 ,编译的工具选择DDK或者Visual C++ 6.0,而调试工具有Windbg双机调试和SoftICE单机调试。下面将详细的介绍这些工具的配置和使用。开发工具:在安装所有的工具之前,首先安装DDK,这个是微软提供的编译器,用

2016-03-28 11:32:01 882

转载 Windows驱动开发入门系列教程

从事驱动开发也有一段时间了,从最初的无头苍蝇到懵懵懂懂,到入门,直至今天,感觉一路走来,走了不少的弯路,只因为没有人引导。前几天,一个朋友问到我怎么学习Windows驱动开发,我就想到把我学习Windows驱动开发的过程分享一下,也算我的一点总结。我总结了一下,大概分为这么几部分内容:第一讲:开发环境与工具篇主要讲述驱动开发的工具、调试的工具,开发环境的配置等知识,通过本篇

2016-03-28 11:27:41 5498

转载 VC中文件操作的几种方式(3,4)

6.1.3  使用Windows APIWindows API总是显得格外沉重,表6-5是常用的文件读写操作API。表6-5  文件读写API函数含义CreateFile创建、打开文件,返回文件句柄CloseHandle关闭文件句柄ReadFile

2015-11-05 21:15:54 665

转载 VC中文件操作的几种方式(1,2)

第6章  使用文件存取对象文件可以用来存储一张《清明上河图》,一曲《春江花月夜》,当然也可以存储一部《红楼梦》,文件的内容依赖于应用程序来解释。几乎所有的操作系统都通过文件的界面允许用户保存、管理数据。所以,我们理所当然把文件当做数据存取介质的第一选择。6.1  文件操作的几种方式操作计算机的人都会接触到文件,文件的操作通常包括文件的读取、修改,有的时候我们还需要对文件进行外部管理,包

2015-11-05 21:09:49 577

转载 三态选择树实现终结者

示例代码运行效果图如下:在很多情况下,我们经常需要实现树的多态选择,如上图所示,当全部子节点选中的情况下,当前节点才被选中(如图示[荆门市]节点),当子节点部分选中时,当前节点处于第三态(如图示[湖北省]节点)当全部子节点未选中时,当前节点处于未选中的状态(如图示[江苏省]节点)。本文就介绍这种三态选择树的具体实现方法。在VC知识库第十九期中河南科技大学丛雷朋友也介绍了一种

2015-02-09 18:01:53 2482

转载 Visual C++的程序设计技巧

Microsoft VisualC++是一种可视化编程语言,因功能强大而受到广大程序设计人员的青睐。但是,由于VC++的应用程序框架结构非常复杂,使得许多初学者望而却步。本文通过对设置视图背景颜色和改变对话框标题的几种实现方法的分析研究,揭示了VC++程序代码执行时的一些本质特征和有关的程序设计技巧,对理解MFC库的结构和Windows操作系统的内部工作方式提供了一定的帮助。设置视图背景颜

2013-12-13 16:53:25 747

转载 IP数据包长度问题总结

这篇文章总结的不错,转自:http://hi.baidu.com/to_wait/blog/item/3e855931a5a51717eac4af22.html首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。   其中以太网(Ethernet)的数据帧在链路层   IP包在网络层   TCP或UDP包在传输层   TCP或UDP中的数据(Data)

2013-12-03 21:50:50 1173

转载 在IIS上发布网站

在IIS上发布网站,这里是步骤:1.你的网站首先应该建好了,然后你已经安装了IIS。2.打开你的IIS管理器,按下图,一步步的打开,3. 右击默认网站,新建虚拟目录:4.根据向导一步步的找到你的网站,然后添加进去,向导如下列截图所示,注意权限那个里面可以根据自己的需要进行选择,这里我都勾上了,其实是不安全的: 

2013-12-03 21:48:47 798

转载 数字证书的原理与实现

一.数字证书概述  数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。  数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信任问题

2013-11-21 18:49:59 1817

转载 数据公钥加密和认证中的私钥公钥

先前我曾经写了一篇“网站的安全登录认证设计”,可能是讲述的不够清楚,有一位读者就留言质疑到,“公钥顾名思义就是公开的啦,只要你愿意,谁都会有你的公钥,何来安全?应该是用网站的公钥加密,传到网站后,网站用自己的私钥解密吧”。  这些密码学的概念容易被搞混淆,的确也情有可原。因为公钥、私钥、加密、认证这些都是较为复杂的问题,其概念不太容易理解,理解不透就容易产生各种似是而非的概念,为了让大家对于密

2013-11-21 18:47:39 739

转载 数字证书原理

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识      这部分内容主要解释一些概念和术语,最好是先理解这部分内容

2013-11-21 18:45:13 823

转载 公钥,私钥和数字签名这样最好理解

一、公钥加密 假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷

2013-11-21 18:42:06 815

转载 公钥、私钥、数字证书的概念

公钥和私钥                                            一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。      公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。      使用公钥与私钥的目的就是实现

2013-11-21 18:32:51 802

转载 界面布局动态调整

早在2007年我就写过一篇博客叫可适配控件对话框,那个时候一方面是工作需要研究了这个问题,另一方面是发现论坛里有很多人问相关的问题,于是就把自己的研究成果做了一个小例子发了上来,还写了那篇博客。      说来惭愧,首先那时那个例子其实是我照着网上一个例子改的,而且基本框架也差不多,我简单加了些自己的东西改了改名就发出来了,唉......如今原作者以无法考正了,在此对其表示感谢吧。然后那个例子

2013-11-21 18:20:53 1255

转载 MFC 对话框最大化时控件也随比例最大化或者还原

1. 在oninitdlg中 计算出当前对话框的大小与最大化后大小,注意要用float值,不然误差很大.CRect rect; ::GetWindowRect(m_hWnd,rect); ScreenToClient(rect); m_nDlgWidth = rect.right - rect.left; m_nDlgHeight = rect.bottom - rect.to

2013-11-21 18:11:58 975

转载 MFC中控件大小随对话框大小动态变化

首先在***Dlg.h头文件中定义[cpp] view plaincopyprint?CRect m_rectmin;//用于存储初始化对话框的大小  CRect Button1Rectinit;//用于存储初始化控件的大小  CRect m_rectmin;//用于存储初始化对话框的大小CRect Button1Rectinit;//用于存储初始化控件

2013-11-21 18:09:53 1633 1

转载 C/C++ I/O库函数

头文件:stdio.h函数列表: 文件操作remove删除文件rename重命名文件tmpfile打开一个临时文件tmpnam产生临时文件名 文件访问fclose关闭文件fflush

2013-10-11 19:00:25 809

转载 C/C++时间处理函数

C time库中提供了几个时间处理的函数:获取时间clock获取程序从开始到调用clock硬件滴答数difftime获取两个时间的差time获取当前时间转换时间mktime将tm结构转换成time_tasctime将tm结构转换成stringctime

2013-10-11 18:41:13 833

转载 C中Static的用法小结

C中static这个关键字的用法比较灵活,下面就static的主要用法予以总结,有不对之处,还望高手指出。 这里主要从两个角度来考虑static的用法:对变量(全局和局部)的影响,对函数的影响。  一、对变量的影响(即静态变量)1、存储位置:静态存储区2、生存期:程序运行整个期间,特别对局部静态变量,函数退出后,变量依然存在3、可访问

2013-10-11 18:36:02 599

转载 C++类访问控制及继承

一、C++类的访问控制有三类:public,protected和private。类访问控制符类成员可被哪些对象访问public1、类的成员函数。2、类对象。3、友元。4、子类成员函数protected1、类的成员函数。2、友元。3、子类成员函数private1、类的成员函数。2、友元

2013-10-11 18:34:11 791

转载 C/C++字符串函数之复制函数

突然发现对字符串函数缺乏系统的了解,所以花了一点时间专门整理下,在此记录之,以方便自己及有需要的人使用。C/C++字符串函数的头文件:string.h复制函数主要有4个,如下:1、char * strcpy(char* destination,const char * source);2、char* strncpy(char* destination,const c

2013-10-11 18:30:34 1108

转载 C/C++ strtok函数

一、头文件:#include 二、函数原型:char * strtok (char *str, const char * delimiters);三、参数:str,待分割的c风格的字符串(c-string);delimiters,分割符字符串。四、说明:将字符串str分解成若干个单词,单词之间以delimi

2013-10-11 18:27:29 931

转载 C/C++字符串转换到数字的函数

C/C++标准库stdlib.h中提供了字符串到数字的转换。一、头文件[cpp] view plaincopy#include   二、函数列表[cpp] view plaincopyint atoi ( const char * str );  long

2013-10-11 18:23:56 945

转载 C/C++ Const之我见

C/C++中const的用法太过于灵活,以至于误用。关于const的用法,网友已经写了很多相关文章,不过我觉得都是在罗列const的一些表面用法,没有阐述const的本质,看过了,也很容易忘记。因此,结合我对const的一些理解,就有了下面的文字,有不对之处,还望高手指点。一、const的本质const表示了不可改变的属性。二、const的用法分析

2013-10-11 18:18:23 638

转载 C/C++字符串查找函数

C/C++ string库(string.h)提供了几个字符串查找函数,如下:memchr在指定内存里定位给定字符strchr在指定字符串里定位给定字符strcspn返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量strrchr在字符串里定位给定字符最后一次出现的位置strpbrk

2013-10-11 17:46:54 940

转载 秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据

本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5136035转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8646902欢迎关注微博:http://weibo.com/MoreWindows 在《秒杀多线程系列》的前十五篇中

2013-06-14 15:35:44 915

转载 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题

秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题在《秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量》中对经典多线程同步互斥问题进行了回顾和总结,这篇文章对Windows系统下常用的线程同步互斥机制——关键段、事件、互斥量、信号量进行了总结。有网友问到互斥量能处理“遗弃”问题,事件和信号量是否也能处理“遗弃”问题。因此本文将对事件和信号量作个试验,看看事件和信

2013-06-14 15:32:22 759

转载 秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock

在《秒杀多线程第十一篇读者写者问题》文章中我们使用事件和一个记录读者个数的变量来解决读者写者问题。问题虽然得到了解决,但代码有点复杂。本篇将介绍一种新方法——读写锁SRWLock来解决这一问题。读写锁在对资源进行保护的同时,还能区分想要读取资源值的线程(读取者线程)和想要更新资源的线程(写入者线程)。对于读取者线程,读写锁会允许他们并发的执行。当有写入者线程在占有资源时,读写锁会让其它写入者线程和

2013-06-14 15:25:06 665

转载 秒杀多线程第十二篇 多线程同步内功心法——PV操作上

阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》《秒杀多线程第八篇经典线程同步信号量Semaphore》《秒杀多线程第九篇经典线程同步总结关键段事件互斥量信号量》《秒杀多线程第十篇

2013-06-14 15:22:47 730

转载 秒杀多线程第十一篇 读者写者问题

与上一篇《秒杀多线程第十篇 生产者消费者问题》的生产者消费者问题一样,读者写者也是一个非常著名的同步问题。读者写者问题描述非常简单,有一个写者很多读者,多个读者可以同时读文件,但写者在写文件时不允许有读者在读文件,同样有读者在读文件时写者也不去能写文件。上面是读者写者问题示意图,类似于生产者消费者问题的分析过程,首先来找找哪些是属于“等待”情况。第一.写者要等到没有读者时才

2013-06-14 15:20:36 717

转载 秒杀多线程第十篇 生产者消费者问题

继经典线程同步问题之后,我们来看看生产者消费者问题及读者写者问题。生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,显然生产者和消费者之间必须保持同步,即不允许消费者到一个空的缓冲区

2013-06-14 15:18:39 631

转载 秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量

前面《秒杀多线程第四篇一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,这个问题包括了主线程与子线程的同步,子线程间的互斥,是一道非常经典的多线程同步互斥问题范例,后面分别用了四篇《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》《秒杀多线程第八篇经典线程同步信号量Se

2013-06-14 15:14:41 695

转载 秒杀多线程第八篇 经典线程同步 信号量Semaphore

阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》 前面介绍了关键段CS、事件Event、互斥量Mutex在经典线程同步问题中的使用。本篇介绍用信号量Semaphore来解决这个问题。

2013-06-14 15:12:11 594

转载 秒杀多线程第七篇 经典线程同步 互斥量Mutex

阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》 前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行

2013-06-14 15:09:43 639

空空如也

空空如也

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

TA关注的人

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