自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MessCodes

追求极致, 喜欢极简, 但又希望简约不简单

  • 博客(39)
  • 资源 (6)
  • 收藏
  • 关注

转载 内核对象句柄表

转自:点击打开链接一、什么是内核对象       在Windows中,为了简化对资源的访问,统一采用HANDLE来表示各种各样的资源(如内存块、映射文件、Mutex、Semophore等等)在内存中的存放方式(一种数据结构),我们称之为对象。该数据结构中存放的是要访问的资源的相关信息,包括实际资源内容在内存中的地址、该数据结构(对象)引用计数以及安全属性等等。凡是在函数参数列表

2013-06-27 21:02:30 1637

转载 Windows程序进程中内核对象句柄表

转自:点击打开链接一个进程在初始化时,系统将为它分配一个句柄表。这个句柄表仅供内核对象使用,不适用于用户对象或GDI对象。创建一个进程首次初始化的时候,其句柄表为空。当进程内的一个线程调用一个会创建内核对象的函数时,内核将为这个对象分配并初始化一个内存块。然后,内核扫描进程的句柄表,查找一个空白的记录项,并对其进行初始化。具体就是指针成员会被设置成内核对

2013-06-27 20:16:02 1916

转载 堆、栈和本地堆

转自:点击打开链接堆和栈站在数据结构的方面来说与堆栈是一样的,在内存方面来说,它们为内存的不同的区域,它们都是连续的内存空间,在分配和销毁空间时都满足后进先出的特点。拿一个应用程序来说,堆中保存全局变量,栈中保存局部变量,在一个应用程序开始执行时,堆的空间就定了,栈是在代码段中的,在这段空间中,除去代码占用的空间,其余的空间会分配给栈,说堆时要考虑操作系统,不同的操作系统堆

2013-06-27 18:12:38 1231

原创 Windows多线程程序设计之线程同步分析(结合事件对象)(下)

本篇介绍命名的事件对象, 命名的事件对象的功能和原理其实和命名的互斥对象的功能和原理差不错, 所以在此篇中就不在进行详细的说明了, 如有疑问请看我的《Windows多线程程序设计之线程同步分析(结合互斥对象)(下)》连接地址:点击打开链接, 在这里我只给出相应的代码,如下:#include #include using namespace std ;DWORD WINAPI

2013-06-26 22:44:26 1116

原创 Windows多线程程序设计之线程同步分析(结合事件对象)(上)

声明: 关于这几篇《Windows多线程程序设计之线程同步分析(结合xx对象)》的博文中的程序, 大家最好能在一台单核CPU中进行测试, 本人使用的双核CPU在测试这些程序的过程中出现了各种各样的不同的问题, 但并不影响我们对多线程程序实现原理的理解, 出现的问题, 由于本人能力有限, 并没能给出相关的解释, 所以也就没有将问题写出来, 希望日后我能够找出这些问题的原因, 此系列的文章仅供参考,

2013-06-25 19:04:54 1262

转载 在Eclipse中加入API帮助文档

转自:点击打开链接在Eclipse中加入API帮助文档,该文档可以为中文也可以为英文。首先将API文档准备好,最好是html版的然后,打开Eclipse,选择【Window】---->【Preferences】弹出如下所示图片双击你使用的JRES,弹出如下的对话框:将rt.jar的+号展开,双击上图所示的那一行,出现下图的对话框:在这里设置你前面

2013-06-24 18:46:08 10121

原创 MFC之StdAfx.h头文件说明

StdAfx.h是一个预编译头文件,在这个头文件中包含了MFC程序运行所必要的头文件,该头文件中的包含的头文件如下:#include // MFC core and standard components#include // MFC extensions#include // MFC Automation classes#in

2013-06-23 21:03:54 2319

原创 Windows多线程程序设计之线程同步分析(结合互斥对象)(下)

本篇中,我将对命名互斥对象进行实例讲解,代码如下:#include #include using namespace std ;DWORD WINAPI ThreadProc1(LPVOID lpParameter) ;DWORD WINAPI ThreadProc2(LPVOID lpParameter) ;int index ;int tickets = 100 ;HA

2013-06-23 15:02:20 1063

原创 Windows多线程程序设计之线程同步分析(结合互斥对象)(中)

接上篇....先来看看代码,如下:MultiThread4.cpp#include #include using namespace std ;DWORD WINAPI ThreadProc1(LPVOID lpParameter) ;DWORD WINAPI ThreadProc2(LPVOID lpParameter) ;int index ;int ticket

2013-06-23 14:40:45 1132

原创 Windows多线程程序设计之线程同步分析(结合互斥对象)(上)

Windows中的多线程程序设计一直是所有编程人员感到困难的一个地方,主要是在Windows多线程程序设计中,往往要考虑很多的东西,线程启用的多少,线程之间的同步问题等等...   这里我将将我学习过程中碰到的问题总结在此,如果有遇到相同困惑的人也能够尽快的明白过来。MultiThread1.cpp#include #include using namespace s

2013-06-23 13:16:54 1730

转载 命名管道

"命名管道"或"命名管线"(Named Pipes)是一种简单的进程间通信(I P C)机制,Microsoft Windows NT,Windows 2000,Windows 95以及Windows 98均提供了对它的支持(但不包括Windows CE).命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的,单向或双向的数据通信.用命名管道来设计应用

2013-06-21 21:44:02 1354

转载 Windows编程之管道技术

不知你是否用过这样的程序,他们本身并没有解压缩的功能,而是调用DOS程序PKZIP完成ZIP包的解压缩。但是在程序运行时又没有DOS控制台的窗口出现而且一切本应该在DOS下显示的信息都出现在了那个安装程序的一个文本框里。这种设计既美观又可以防止少数眼疾手快的用户提前关了你的DOS窗口。  现在就来讨论一下,如何用匿名管道技术实现这个功能。   管道技术由来已久,相信不少人对DOS命令里的管

2013-06-21 21:35:24 1248

原创 JavaSE及MySQL学习资料

Java多线程编程详解http://programming.iteye.com/blog/158568点击打开链接深入JVM锁机制1--synchronizedhttp://blog.csdn.net/chen77716/article/details/6618779点击打开链接 Java手机版API文档http://www.

2013-06-21 18:36:44 1119

转载 原始套接字

转自:点击打开链接利用原始套接字可以访问位于基层的传输协议。原始套接字向程序员提供了读写IP/ICMP/IGMP以及构造特殊的IP报文的功能:SOCKET s; s=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP); //或者 WSASocket(AF_INET,SOCK_RAW,IPPROTO_TCMP,NULL,0,WSA_FLAG_OVERL

2013-06-21 18:14:06 770

转载 何为内核对象

转自:点击打开链接内核对象如:访问令牌对象,事件对象,文件对象,文件映射对象,I/O完成端口对象,作业对象,邮件槽对象,互斥量对象,管道对象,进程对象,信号量对象,线程对象,可等待的计时器对象以及线程池工厂对象。这些对象通过不同名称的函数来创建。函数的名称并非肯定与操作系统内核级别上使用的对象类型对应。每个内核对象都只是一个内存块,它由操作系统内核分配,并只能由

2013-06-21 18:01:21 860

转载 STL之list基础

转自:点击打开链接各个容器有很多的相似性。先学好一个,其它的就好办了。先从基础开始。先看看他们的分类吧标准STL序列容器:vector、string、deque和list。 标准STL关联容器:set、multiset、map和multimap。 非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串。 非标准关联容器hash_set、

2013-06-19 22:58:29 985

转载 临界区结构(CRITICAL_SECTION)的使用

转自:点击打开链接CRITICAL_SECTION cs;InitializeCriticalSection(&cs);EnterCriticalSection(&cs);在这时,线程被认为「拥有」临界区域对象。两个线程不可以同时拥有同一个临界区域对象,因此,如果一个线程进入了临界区域,那么下一个使用同一临界区域对象呼叫EnterCriticalSection的线程将在函数

2013-06-19 22:28:54 1576

转载 WinSock基本I/O模型简介

转自:点击打开链接如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择模型、异步选择模型、事件选择模型、重叠I/O模型和完成端口共五种I/O模型。每一种模型均适用于一种特定的应用场景。编程人员应综合考虑到程序的扩展性和可移植性等因素,做出自己的选择。1 选择模式(Select)选择模型是Winsock中最常

2013-06-17 21:44:20 860

转载 套接字选项—修改套接字缓冲区大小

转自:点击打开链接有时候我们需要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要学习套接字选项。int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen) int setsockopt(int sockfd,int level,int optname,const vo

2013-06-17 12:17:47 4377

转载 计算机是如何启动的?

转自:从打开电源到开始操作,计算机的启动是一个非常复杂的过程。  我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。  零、boot的含义  先问一个问题,"启动"用英语怎么说?  回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关

2013-06-15 12:38:46 761

转载 系统消息 -- 键鼠消息

转自:点击打开链接鼠标消息在窗口显示区域鼠标消息WM_MOUSEMOVE当鼠标在窗口的显示区域移动时WM_LBUTTONDOWN按下鼠标左键WM_LBUTTONUP释放鼠标左键WM_LBUTTONDBLCLK

2013-06-14 20:19:40 871

转载 系统消息

转自:点击打开链接Windows消息分布消息范围说 明0 ~ WM_USER – 1系统消息WM_USER ~ 0x7FFF自定义窗口类整数消息WM_APP ~ 0xBFFF应用程序自定义消息

2013-06-14 20:17:03 930

转载 窗体

转自:点击打开链接 三个角度窗口含义从应用程序开发员的角度窗口就是图形用户界面句柄,以该句柄作为系统API的参数,就可以对窗口进行各种操作从MFC程序员角度窗口就是一个CWnd对象从操作系统角度窗口是一块普通内存块.该内存中保存了一个数据结构的信息(WNDCLASS).操作系统利用这个数据结构维护窗口状态窗口类型可重叠窗口这种窗口是有标题

2013-06-14 20:15:17 894

转载 Win32 窗体开发主要流程

转自:点击打开链接窗体设计窗体设计和消息循环设计流图: 代码示例://设计窗口  WNDCLASS wndclass;    wndclass.cbClsExtra=0;  wndclass.cbWndExtra=0;  wndclass.hbrBackground=(HBRUSH)GetStockObject(WHI

2013-06-14 20:12:47 954

转载 Windows 应用程序交互过程

转自:点击打开链接应用程序Windows的应用程序一般包含窗口(Window),它主要为用户提供一种可视化的交互方式,窗口是由线程(Thread)创建的.Windows系统通过消息机制来管理交互,消息(Message)被发送,保存,处理,一个线程会维护自己的一套消息队列(Message Queue),在发生输入事件之后,Windows将事件转换为一个「消息」并将消息放入

2013-06-14 20:10:55 1075

转载 WinPE

转自:点击打开链接Windows Preinstallation Environment(WinPE)(Windows预安装环境)基于在保护模式下运行的WindowsXP个人版内核,是一个只拥有较少(但是非常核心)服务的Win32子系统。这些服务为Windows安装、实现网络共享、自动底层处理进程和实现硬件验证。  WinPE让你创建和格式化硬盘分区,并且给你访问NTF

2013-06-14 17:41:17 1000

原创 CArray类中GetAt()函数与ElementAt()函数的区别

部分内容摘自网络GetAt()函数的定义:TYPE& GetAt( INT_PTR nIndex );const TYPE& GetAt( INT_PTR nIndex) constElementAt()函数的定义:TYPE& ElementAt( INT_PTR nIndex );const TYPE& ElementAt( IN

2013-06-12 13:48:04 5881

转载 Java HashMap实现详解

转自:点击打开链接1.    HashMap概述:   HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2.    HashMap的数据结构:   在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所

2013-06-10 19:48:04 984

转载 哈希表

转自:点击打开链接哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。  对哈希表的使用者一一人来说,这是一瞬间的事。哈希表运算得非常快,在计算机程序中,如果需要在一秒种内查找上千条记录通常使用哈希表(例如拼写

2013-06-10 19:26:48 809

转载 Java 泛型详解

转自:点击打开链接普通泛型class Point{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T getVar(){ // 返回值的类型由外部决定 return var ; } public void s

2013-06-10 17:50:42 783

转载 MFC编译出错及解决

转自:点击打开链接最近两三天被一个MFC的编译问题烦死了,直到今天才解决。问题如下:D:\Temp\vc\Scribble\ScribbleDoc.h(25) : error C2143: syntax error : missing ';' before 'D:\Temp\vc\Scribble\ScribbleDoc.h(25) : error C2501: '

2013-06-10 15:12:05 1262

转载 Win32 API之SendMessage与PostMessage

转自:点击打开链接Win32 API消息函数:SendMessage(发送消息)函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程 序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。函数原型:LRESULT SendMessage( HWND hWn

2013-06-08 11:35:26 5602

原创 Win32 API对文件的操作(注释)

文件操作的方式有很多, C语言的文件操作, C++的文件操作(C++中将文件操作相关的函数都封装到相应的类中, 其中文件读取的相关方法都封装在类 ifstream 中, 文件写入的相关方法都封装在类 ofstream中。因为在C++中对文件的操作与C语言类似, 这里不在进行说明了; 下面主要说一下Win 32平台SDK中的文件操作:读取文件: HANDLE hFile

2013-06-07 20:04:50 1478

原创 C语言文件操作(注释)

读操作:/* FILE *pFile = fopen("1.txt", "r") ; char buf[100] ; memset(buf, 0, 100) ; // 将数据缓冲区全部置为0 fread(buf, 1, 100, pFile) ; MessageBox(buf) ; fclose(pFile) ;*/ FILE *pFile = fopen("1.txt",

2013-06-05 19:03:02 1496

转载 MFC中UpdateData()函数的使用

转自:点击打开链接在写一个MFC的程序时, 在对话框的地方出了些问题, 在网上找了相关的资料, 原来, 对话框上控件的值与控件所对应的数据成员之间要调用UpdateData()函数进行一些数据转换的操作, 以下将网上查找的关于UpdateData()函数的使用方法:UpdateData()参数只有一个,默认为TRUE。  UpdateData(TRUE)  ——刷新

2013-06-04 20:43:50 4486

转载 typdef void (*funcptr)(void);

本文收集自网络...比如你有三个函数:void hello(void) { printf("你好!"); }void bye(void) { printf("再见!"); }void ok(void) { printf("好的!"); }typdef void (*funcptr)(void);这样就构造了一个通用的函数你用的时候可以这样:void speak(in

2013-06-04 19:36:36 1078

转载 c++中的虚函数 (细节)

转自:点击打开链接C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚

2013-06-04 19:33:20 714

转载 SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

转自:点击打开链接Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要

2013-06-04 08:44:14 1057

转载 通过Java Swing看透MVC设计模式

转自:点击打开链接一个好的用户界面(GUI)的设计通常可以在现实世界找到相应的表现。例如,如果在您的面前摆放着一个类似于电脑键盘按键的一个简单的按钮,然而就是这么简单的一个按钮,我们就可以看出一个GUI设计的规则,它由两个主要的部分构成,一部分使得它具有了按钮应该具有的动作特性,例如可以被按下。另外一部分则负责它的表现,例如这个按钮是代表了A还是B。看清楚这两点你就发现了一

2013-06-01 19:48:30 1094

doxygen代码文档生成工具

可以按照doxygen规定的格式编写代码注释,然后利用doxygen工具直接生成参考文档

2018-10-19

ST Cortex-M4官方PCB工程

ST Cortex-M4官方PCB工程。

2017-06-17

ButterWorth Filter

butterworth filter,C/C++实现了ButterWorth滤波器的低通、高通、带通、带阻功能。

2016-02-28

qt-recordDesktop

Linux下的一个屏幕录像软件,安装包总大小不过3M多点,很实用。

2014-02-25

RHEL6.4 Kernel升级rpm包

Linux内核升级软件包(rpm)包,一共有3个rpm包,适合RHEL6.4系统。

2014-02-25

X86汇编语言总结

个人对汇编语言一些指令的总结  [BX]、[BP]、[SI]、[DI]中一般存放着某个段寄存器的偏移地址,默认情况下,[BX]中存放着数据段(DS)的偏移地址,[BP]中存放着栈段(SS)的偏移地址(功能和SP类似),其中BX只能和SI、DI组合,BP只能和SI、DI组合,SI、DI间是不能组合的

2013-04-20

空空如也

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

TA关注的人

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