自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

转载 windows平台下,c++获取cpu型号,读取注册表获取系统软硬件信息代码

GetsysInfo.h: [cpp] view plaincopy#ifndef _H_GETSYSINFO  #define _H_GETSYSINFO      #pragma once    #include     class GetSysInfo  {  public:      Get

2015-02-01 16:50:53 4820

转载 Windows界面编程第六篇 动画启动效果(动画效果显示及隐藏窗口)

动画效果显示及隐藏窗口及大大美化程序界面,像QQ的登录窗口也是使用了动画效果显示及隐藏窗口。本篇《Windows界面编程第六篇 动画启动效果(动画效果显示及隐藏窗口)》就来介绍下如何使用动画效果来显示隐藏窗口。为了方便代码复用,本人已经将其封装成一个窗口动画效果类,先来看看这个窗口动画效果类的实现吧。头文件CAnimateWindow.h[cpp] view pla

2014-05-15 10:49:05 577

转载 Windows界面编程第四篇 异形窗体 高富帅版

上一篇《Windows界面编程第三篇 异形窗体 普通版》介绍了异形窗口(异形窗体)的创建,其主要步骤为——先通过创建位图画刷来做窗口的背景画刷,再通过SetWindowLong为窗体加上WS_EX_LAYERED属性,然后使用SetLayeredWindowAttributes指定窗口的透明色来完成窗口形状的调整。并且为了使异形窗口支持鼠标的拖曳,在WM_LBUTTONDOWN消息中作了特殊处理。

2014-05-15 10:42:34 551

转载 Windows界面编程第三篇 异形窗体 普通版

上一篇《Windows界面编程第二篇 半透明窗体》介绍了先使用SetWindowLong为窗体加上WS_EX_LAYERED属性,再使用SetLayeredWindowAttributes调整窗体的透明度。本篇将使用这二个函数来完成另一个实用的功能——异形窗口(异形窗体)。异形窗口的原理很简单,首先加载一张位图画刷作窗口背景,然后设置透明色就可以使得窗口由矩形变成任意形状。这样使得窗口的显示更

2014-05-14 17:10:57 569

转载 Windows界面编程第二篇 半透明窗体

上一篇《Windows界面编程第一篇 位图背景与位图画刷》介绍了通过WM_CTLCOLORDLG消息来来设置对话框的背景以及位图画刷的使用。本篇将介绍动态调节窗体透明度的方法。    调节窗体透明度可以先使用SetWindowLong为窗体加上WS_EX_LAYERED属性,再使用来SetLayeredWindowAttributes指定窗体的透明度。这样就可以在程序运行时动态的调节窗体的透明

2014-05-14 09:47:53 630

转载 Windows界面编程第一篇 位图背景与位图画刷

Windows界面编程第一篇 位图背景与位图画刷    可以通过WM_CTLCOLORDLG消息来设置对话框的背景,MSDN上对这个消息的说明如下:The WM_CTLCOLORDLG message is sent to a dialog box before the system draws the dialog box. By responding to this message

2014-05-14 09:45:37 489

转载 分层窗口实现千千静听的透明歌词

千千静听的透明歌词有两个特点:1.只有在点击到文字上时,才可以拖动,也就是说窗口是不规则的。2.当设置为总是在前面,最顶层窗口时,歌词窗口的下层窗口的刷新也能体现到歌词上来,也就是歌词依然透明。实现上述两点,很简单,就要把歌词窗口设置为分层窗口就OK了。下面介绍下分层窗口(从MSDN搬来的)Layered WindowsUsing a layered window ca

2014-05-13 15:39:40 790

转载 Detours简介

Detours 是Microsoft开发一个库,下载地址http://research.microsoft.com/en-us/projects/detours/,它具有两方面的功能:1 拦截x86机器上的任意的win32 API函数。2 插入任意的数据段到PE文件中,修改DDL文件的导入表。Detours库可以拦截任意的API调用,拦截代码是在动态运行时加载的。Detours替换

2014-05-09 10:19:17 594

转载 Select模型原理

Select模型原理利用select函数,判断套接字上是否存在数据,或者能否向一个套接字写入数据。目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据,被迫进入阻塞状态。 select参数和返回值意义如下:int select ( IN int nfds,                           //0,无意义 IN

2014-03-14 15:21:56 466

转载 《windows核心编程系列》谈谈内存映射文件

内存映射文件允许开发人员预订一块地址空间并为该区域调拨物理存储器,与虚拟内存不同的是,内存映射文件的物理存储器来自磁盘中的文件,而非系统的页交换文件。将文件映射到内存中后,我们就可以在内存中操作他们了,就像他们被载入内存中一样。 内存映射文件主要有三方面的用途: 1:系统使用内存映射文件来将exe或是dll文件本身作为后备存储器,而非系统页交换文件,这大大节省了系统页交换空间,由于

2014-03-13 14:40:17 578

转载 Windows进程通信--使用内存映射文件

内存映射文件是通过两个或多个进程映射同一个文件映射对象的视图来实现的,这意味着它们将共享物理存储器的同一个页面。因此,当一个进程将数据写入一个共享文件映射对象的视图时,其他进程可以立即看到它们视图中的数据变更情况。如果多个进程共享单个文件映射对象,那么所有进程必须使用相同的名字来表示该文件映射对象。附:下图展示了Windows内存管理API的体系结构:附图:Window

2014-03-13 14:37:03 685

转载 奇思妙想win7高低进程之间数据交换之逆向思维

由于最近工作比较忙,也没有时间把自己的点点滴滴记录下来,今天把自己认为比较重要的东西分享给大家windows平台开发的人肯定非常头疼vista之后高低进程权限之间通信和交换数据的问题,之前在网上也有很多人讨论这个话题              但是我今天要说的和他们的可能不同,让穿越session0更为简单,只需要逆向思维一下下就可以了。好了废话不多说了,看正文。 通常我们开发中肯

2014-03-13 14:34:37 972

转载 如何在Vista中不弹出UAC以本地系统账户启动程序

如何在Vista中不弹出UAC以本地系统账户启动程序 本文讲解如何以本地系统账户从会话0至会话1启动一个程序。 简介 在Vista中,你可能也遇到过这样的问题,当想要以管理员账户启动一个exe执行某些特定任务时,往往UAC权限提升对话框就出来了。为解决这个问题,可把一个服务以本地系统账户权限放入到当前用户会话中,来启动所需的程序,这就不需要我们响应UAC对话框了,并以尽可能最高

2014-03-04 11:14:27 523

转载 理解Windows会话

以前我一直不理解Windows Session(会话)倒底是一个什么概念,总是感觉这个概念很虚,现在理解了一点。写下来做一个备忘。简单的说,用户登陆到windows系统之后,不管该用户是本地登陆的,还是远程登陆,系统都会为这个用户分配一个新的会话ID(SID)。也就是说会话与用户的登录是相关连的,没有用户登录就不存在会话。因此,会话的含义是指用户登录之后的一种运行的环境。我们先看看书上是怎么说的!

2014-03-04 10:58:50 682

转载 c++实现windows服务程序实例

1、注册服务 :在 "开始->运行->cmd" 中输入 sc create TEST binPath = "C:\TEST.EXE" 则在windows下注册了一项服务sc create TestService binpath= "c:\ServiceTest.exe" displayname= "TestService" depend= Tcpip start=    auto

2014-02-12 09:58:19 1439

转载 Windows服务程序

那么一类应用程序,是能够为各种用户(包括本地用户和远程用户)所用的,拥有用户授权级进行管理的能力,并且不论用户是否物理的与正在运行该应用程序的计算机相连都能正常执行,这就是所谓的服务了。(一)服务的基础知识Question 1. 什么是服务?它的特征是什么?  在NT/2000中,服务是一类受到操作系统优待的程序。一个服务首先是一个Win32可执行程序,如果要写一个功能完备

2014-02-12 09:56:00 456

转载 转载一份C++线程池的代码,非常实用

#ifndef _ThreadPool_H_#define _ThreadPool_H_#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include using namespace std;class ThreadJob  //工作基类{public:  /

2013-12-16 19:39:03 484

转载 自绘控件的4种方法

在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 — 在功能和外观两方面。例如,我们假定您正在创建一个类似于计速表的控件。由于公共控件库 (ComCtrl32.dll) 中没有类似的控件,您完全需要自己进行以下操作:编写所有控件功能需要的代码,进行绘制,默认终端用户的交互,以及控件与其父窗口之间需要的任意消息处理。(#add

2013-12-12 17:45:49 920

转载 sockaddr_in , sockaddr , in_addr区别

sockaddr_in , sockaddr , in_addr区别struct   sockaddr   {                  unsigned   short   sa_family;                     char   sa_data[14];             };    上面是通用的socket地址,具体到Internet 

2013-11-13 18:00:04 467

原创 Duilib中消息流程分析

看下CWindowWnd类与CPaintManagerUI类是咋进行消息分发的吧. 1. 先看下CPaintManagerUI类的MessageLoop函数:void CPaintManagerUI::MessageLoop()  {      MSG msg = { 0 };      while( ::GetMessage(&msg, NULL, 0, 0) ) {    

2013-10-17 15:48:56 728

原创 Duilib中的UIBase分析

本篇分析一下源文件UIBase.h/UIBase.cpp UILib的基础类的定义源文件包括UI中常用宏的封装、代码调试宏、绘图常用的各种数据结构,以及UILib中的窗体类等UI里的宏窗体样式宏+---UI_WNDSTYLE_CONTAINER   容器样式,无任何样式+---UI_WNDSTYLE_FRAME       UI标准框架窗体样式(标题栏、边框、图标、

2013-10-17 15:44:09 688

原创 Duilib中各个类的简单介绍

DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。即子窗口不以窗口句柄的形式创建(windowless),只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Windows XP、Vista、Windows 7,如浏览器左侧的TaskPanel,控制面板导航界面,Media Player播放器,即时通讯工具MSN Messa

2013-10-17 15:21:48 821 1

转载 hash_map和map的区别

这里列几个常见问题,应该对你理解和使用hash_map比较有帮助。 4.1 hash_map和map的区别在哪里?构造函数。hash_map需要hash函数,等于函数;map只需要比较函数(小于函数).存储结构。hash_map采用hash表存储,map一般采用红黑树(RB Tree)实现。因此其memory数据结构是不一样的。4.2 什么时候需要用hash_map,什么时

2013-06-07 09:43:45 377

原创 SMTP和POP3

SMTP协议  简单邮件传输协议,一组用于由源地址到目的地址传送邮件的规则,属于TCP/IP协议簇。 1.  工作过程     SMTP的命令和响应都是基于文本的,以命令行为单位,换行回车符结束。响应信息一般只有1行,由1个3位数的代码开始,后面附带上很简短的文字说明。     SMTP要经过建立连接,传送邮件和释放连接3个阶段:     (1)建立TCP连接     (2

2013-05-06 15:56:04 869

原创 FTP服务

概述   FTP服务一般运行在20和21两个端口,端口20用于在客户端和服务器之间传输数据流,端口21用于传输控制流,并且是命令通向ftp服务器的进口,当数据通过数据流传输时,控制流处于空闲状态,而当控制流空闲很长时间后,客户端的防火墙会将会话设置为超时,这样当大量数据通过防火墙时,会产生一些问题。 登陆和匿名  使用FTP时,必须首先登陆,但不是每个ftp客户端都有账号,所以使用匿名

2013-04-21 18:41:21 877

原创 数组和指针相关(1)

数组作为参数    数组作为参数时,数组的下标值被省略了,这是因为,当数组作为函数形参时,函数参数中保存的是数组的的首地址,是一个指针变量。  虽然参数时指针变量,但需要特别注意的是,实参数组名为常量值,而指针或者形参数组为变量,使用sizeof(数组名)可以获取数组的总大小,而对指针或者形参中保存的数组名使用sizeof只能得到指针的长度,即4,所以应该避免如下的错误:void sh

2013-04-18 14:59:11 430

原创 变量在内存中的形态

全局变量 所在地址为数据区,生命周期与所在模块一致 使用立即数间接访问局部变量所在地址为栈区,生命周期与所在函数作用域一致使用esp或ebp间接访问静态变量 全局静态变量:与全局变量类似,但只能在文件内使用,但这只是在编译之前的语法检查 过程中对访问外部的全局静态变量做出了限制,但在内存结构和访问原理上,静态全局和普通全局变量没有区别,相当于全局静态等价于编

2013-04-17 07:11:06 635

原创 静态控件设置为超链接

就是一个小小的功能实现而已,主要是想把一个静态控件设置为一个超链接,记录下其中涉及的一些知识点  主要是需要自定义一个static的派生类,然后在消息映射表里增加鼠标点击事件映射,如下BEGIN_MESSAGE_MAP(Myhylink, CStatic) ON_CONTROL_REFLECT(STN_CLICKED, &Myhylink::OnStnClicked)END_MES

2013-03-24 20:55:41 729

原创 _cdecl,_stdcall和_fastcall

vc++环境下的函数调用约定有三种,_cdecl,_stdcall和_fastcall_cdecl: C/C++默认调用方式,调用方平衡栈,不定参数的函数可以用,参数自右向左入栈,堆栈传参_stdcall:被调用方自己平衡栈,不定参数的函数无法使用,参数自右向左入栈,堆栈传参_fastcall: 寄存器方式传参,被调用方自己平衡栈,不定参数的函数无法使用,参数自右向左入栈,仅前

2013-03-03 13:52:56 322

原创 进位和溢出

进位  无符号数超出存储范围叫做进位,因为没有符号位,不会破坏数据,而多出的1位数据会被进位标志位CF保存,通过查看进位标志位CF,可以检查数据是否进位。 溢出 有符号数超出存储范围叫做溢出,由于数据进位,从而破坏了有符号数的最高位——符号位,可以通过查看溢出标志位OF来检查数据是否溢出,OF的判定规则很简单,如果参与计算的数值符号一致,而计算结果符号不同,则OF成立,其他不成立

2013-02-28 21:27:04 1245

转载 rep stos 指令(Intel汇编) .

今天读代码时,忽然跳出如下一条指令==>>汇编代码: rep stos dword ptr es:[edi]在网上查了相关资料显示:/************************************************************/lea     edi,[ebp-0C0h] mov     ecx,30h mov     eax,0CCCCCCCC

2013-02-28 15:48:23 428

原创 程序的真正入口

VC++开发的程序,在调试时总是从main或者WinMain函数开始,这就容易让人误会它们是程序的第一条指令执行处,这个认识其实是错误的main和WinMain也是一个函数,也需要一个调用者,在它们被调用前,编译器其实已经做了很多的事情,所以main或者WinMain应该是语法规定的用户的入口,而不是应用程序入口。  在应用程序被操作系统加载时,操作系统会分析执行文件内的数据,分配相关资源,读

2013-02-25 20:36:24 551

原创 #define和const的区别

#define是一个真常量,而const则是有编译器判断实现的常量,是一个假常量,在实际中,使用const定义的变量,最终还是一个变量,只是在编译器内进行了检查,发现有修改则报错。  由于编译器在编译期间对const变量进行检查,因此被const修饰过的变量是可以修改的,利用指针获取到const修饰过的变量地址,强制将指针的const修饰 去掉,就可以修改对应的数据内容。如: cons

2013-02-25 20:12:16 288

原创 基本数据类型的表现形式(地址,指针,引用)

地址   在c++中,地址使用十六进制表示,取一个变量地址使用“&”符号,只有变量才有内存地址,常量没有地址(不包括const定义的伪常量) 引用   引用类型在c++里被描述为变量的别名,实际上,C++为了简化指针的操作,对指针的操作进行了封装,产生了引用类型,实际上引用类型就是指针类型,只不过它用于存放地址的内存空间对使用者而言是隐藏的。   引用类型也可以作为函数的参数和

2013-02-25 20:04:43 680

原创 基本数据类型的表现形式(字符)

字符和字符串 在c/c++中,字符编码的格式分两种:ASCII和Unicode。  ASCII编码在内存中占一个字节大小,由0~255之间的数字组成。Unicode占2字节,表示范围0~65535。  在vc++6.0中,使用char表示ASCII字符,wchar_t表示Unicode字符。wchar_t中保存ASCII时,不足位补0,如字符'a'的ASCII编码为0x61,Unico

2013-02-24 19:23:16 712

原创 基本数据类型的表现形式(浮点数)

浮点数类型    在c/c++中,使用浮点方式存储实数(所谓浮点方式是指,用一部分二进制位存放小数点位置信息,我们称之为“指数域”,其他数据位用来存储没有小数点时的数据和符号,我们称之为“数据域”,在访问时,取得指数域,与数据域运算后得到真值)。   c/c++里用两种数据类型保存浮点数,float(单精度),double(双精度),float占4字节空间,double占8字节空间,浮点数

2013-02-24 11:28:18 944

原创 基本数据类型的表现形式(整数)

无符号整数    在内存中,无符号整数的所有位都用来表示数值,以unsigned int 为例,此类型变量在内存中占4字节,8个十六进制数组成,取值范围为0x00000000~ 0xFFFFFFFF。    无符号整型不足32位时,用0来填充剩余高位。对于x86架构,内存中以“小尾方式”,也称为“小端方式”存放,小尾方式的存放是以字节为单位,按照长度,低数据位排放在内存的低端,高数据位排放

2013-02-23 08:36:32 1233

转载 EAX、ECX、EDX、EBX寄存器的作用

一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器EAX、ECX、EDX、EBX:為ax,bx,cx,dx的延伸,各為32位元ESI、EDI、ESP、EBP:為si,di,

2013-02-20 13:59:25 737

转载 临界区,互斥量,信号量,事件的区别 .

四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。   临界区(Critical Section) 保证在某一时刻只有一

2013-01-31 15:58:26 296

原创 默认拷贝构造函数,默认赋值函数的考察

class A{public: A(int x){    y = x+1;}void Print(){   cout}private:          int y;};void main(){      A a1 = 0;      A a2(a1);      a2.Print();}求这段代码输出

2013-01-28 21:16:02 451

MFC实现的视频播放器

用MFC实现的视频播放器,可以播放主流的格式的视频,主要是技术点就是控件重绘和directshow的应用

2013-10-17

基于VHDL的电子密码锁-组成原理课程设计(含文档)

基于VHDL 的电子密码锁的设计,是组成原理的课程设计,内含课程设计的文档

2010-01-01

vc++课程设计-学生成绩管理系统(含文档)

用vc++实现的学生成绩管理系统的课程设计,并且含有课程设计的文档

2009-12-27

空空如也

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

TA关注的人

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