自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【重叠I/O之系列三】I/O完成端口

一 串行模式和并行模式  一般一个服务应用程序采用以下两个架构模型之一:串行模式 一个线程等待一个客户发出的请求,当请求到达的时候,线程会被换醒来处理客户的请求。并发模式。一个线程等待一个客户发出的请求,当请求到达的时候,线程会创建一个新的线程来处理客户的请求,而当前线程则会进入下一次循环继续等待客户的请求。  在当前多客户请求的环境下,串行模式远远不能满足...

2014-05-06 21:23:00 185

转载 重叠I/O之使用完成例程的扩展I/O【系列二】

一 废话  在上一篇文章中,我们介绍了通过等待内核对象来接受I/O完成通知的重叠I/O。除了使用同步对象外,我们还可以使用其它方法,这便是这篇文章要介绍的使用完成例程的扩展I/O。完成例程其实就是回调函数,当I/O完成的时候系统调用一个用户指定的回调函数来通知用户I/O完成, 调用完回调函数之后,可以继续启动下一个I/O操作。为了实现回调,线程需要处于可通知的状态。为什么称之为“扩展...

2014-05-05 20:54:00 212

转载 重叠I/O之可等待的重叠I/O【系列一】

一 什么是异步I/O  同步I/O和异步I/O的关键不同就是在发出I/O请求后,线程是否会阻塞。当线程发出一个设备I/O请求的时候,线程会被挂起来,直到设备完成I/O请求为止,这称之为同步I/O。而对于异步I/O,当线程提交了一个设备I/O请求后,可以继续运行,当内核完成I/O的请求后会通知线程I/O已完成。由于与计算机执行的大多数其它操作相比,设备I/O是其中最慢的,所以使用异步I...

2014-05-05 15:01:00 220

转载 【转】代码高处走 从VC6到VC9移植代码问题说明

 首先可以直接用Visual Studio 2008的打开VC6的工作区文件和项目文件(dsw和dsp),并将其升级为VS2008的解决方案格式和项目格式(sln和vcproj),VC9的编译器相对于VC6有了很大的变化,一些编译参数和链接参数被废弃(比如/map:line),有一些改变了名称,还有新增的选项,不过不用担心,升级过程会自动对其进行转换,最终都会得到一个正确的解决方案和VC...

2014-04-23 21:32:00 148

转载 [转]如何学好windows c++编程 学习精髓(收集,整理)

以下是很多VC爱好者的学习经历,希望对大家有所帮助:我记得我在网上是这么说的:先学win32的SDK,也就是API,再学MFC,这么一来呢,就先有个基础,MFC是API的封装,如果API用的熟了,MFC上手就轻松的多了。我觉得呢,现在不少WINDOWS编程入门的好书很多,多买一些,多看看,多想想。不要心浮气躁。我的经验就是一边看书,一边写程序,看看是不是书上说的那样。看书看明白了...

2014-04-23 21:31:00 353

转载 [转]Windows Shell 编程 第三章 【转自:http://blog.youkuaiyun.com/wangqiulin123456/article/details/7987901】...

第三章操作文件我依然清楚地记得,Windows95的贝塔版出现的情形,它在朋友之间和学院中传播,好酷,全新的文件管理器,一种全图标,全彩色可客户化的界面,以及活泼的动画标识使得在文件拷贝和删除方面的操作更容易和直观。作为真正的软件狂人,我们能为一个比萨饼的奖金开始竞赛,一直以求成为第一个能够编程再造如此行为的人—即,怎样以动画方式拷贝文件。...

2014-04-08 14:31:00 120

转载 [转]Windows Shell 编程 第二章 【来源:http://blog.youkuaiyun.com/wangqiulin123456/article/details/7987893】...

第二章Shell的结构“Shell编程”的大伞之下有大量的API函数和COM接口。这个种类繁多的‘命令’集允许你用不同的方法对Windows Shell进行编程。函数和接口并不是两种提供相同功能的等价途径,相反,它们在不同的逻辑层上提供不同的功能。 API函数包含了用户想要在Shell对象上执行的基本操作,如文件和文件夹。COM接口则给出了扩展增强,甚至客户化...

2014-04-08 13:42:00 157

转载 [转]第一章 Windows Shell是什么 【来源:http://blog.youkuaiyun.com/wangqiulin123456/article/details/7987862】...

 一个操作系统外壳的不错的定义是它是一个系统提供的用户界面,它允许用户执行公共的任务,如访问文件系统,导出执行程序,改变系统设置等。MS-DOS有一个Command.COM扮演着这个角色。然而Windows已经有了图形界面环境,他的外壳程序也就必然是图形方式的。在Windows95以前,默认的Windows Shell就是程序管理器。程序管理器是一个中央控制台,...

2014-04-08 13:38:00 111

转载 [转]Windows Shell 编程 第四章 【来源 http://blog.youkuaiyun.com/wangqiulin123456/article/details/7987933】...

第四章文件的本质以前,所有文件和目录都有一个确定的属性集:时间,日期,尺寸,以及表示‘只读的’,‘隐藏的,‘存档的’,或‘系统的’状态标志。然而,Windos95(及后来的WindowsNT4.0)出现使这些概念产生了改变,其中最重要的‘文件’变得更加广泛。现在,文件可以是任何Shell部件对象—不一定必须是文件系统的部件。文件的精确定义是,...

2014-03-24 10:28:00 162

转载 常用正则表达式

则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:\n\s*\...

2014-01-21 15:10:00 69

转载 SetTimer的使用

SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。   SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ;  其中  hWnd是和timer关联的窗口句柄...

2014-01-20 17:35:00 172

转载 窗口透明实例

  使窗口透明可以利用Windows提供的SetLaygerWindowAttributes设置透明和不透明的颜色关键值来实现的。1SetLaygerWindowAttributes函数  BOOL SetLayeredWindowAttributes(HWND hwnd, // handle to the layered windowCOLORREF crKe...

2014-01-20 10:12:00 141

转载 【转】浅析Windows编程的剪贴板

摘要:本文对Windows剪贴板机制作了深入、全面的阐述,具体内容包括:文本、位图、DSP、自定义格式剪贴板的使用和多数据项和延迟提交技术。  关键词:VC++6.0; 剪贴板机制;数据格式;延迟提交  Windows剪贴板  Windows剪贴板是一种比较简单同时也是开销比较小的IPC(InterProcess Communication,进程间通讯)机制。Windows系统支持剪...

2014-01-16 13:27:00 117

转载 什么是SysWow64

转自 什么是SysWow64 Wow!什么是Wow6464位的Windows并不是简单地把所有东西都编译成64位就万事大吉的。关于64位的CPU应该做成什么样子,Intel和AMD曾有各自的打算。AMD的回答直接了当:新的64位处理器,应该能在提高更高处理能力的同时,保持对32位应用程序的兼容性。而Intel则希望借此机会,把下一代的处理器,设计得更完美。于是,就有了AMD的x8...

2014-01-15 11:27:00 120

转载 FromHandle函数

  一 FromHandle()  MFC 实际上是对内核对象HANDLE(如CDC的m_hDC,CWnd的m_hWnd)封装了这个句柄有关的所有操作,一个类生成一个新对象的时候这个句柄是无效的,要获得这个句柄,可以有两个方法,一个是Create来创建,另一个就是用Attach来与一个已有的句柄建立关联,实际上也就是给类的句柄成员变量赋值。 而有些时候这个句柄不是由我们创建,但是我们...

2014-01-11 10:51:00 376

转载 PeekMessage

PeekMessage是一个Windows API函数。该函数为一个消息检查线程消息队列,并将该消息(如果存在)放于指定的结构。1 语法BOOL PeekMessage(LPMSG IpMsg,HWND hWnd,UINT wMSGfilterMin,UINT wMsgFilterMax,UINT wRemoveMsg);2 参数lpMsg接收...

2014-01-06 14:04:00 325

转载 文件夹打开对话框

一 在程序中创建一个打开文件夹对话框,首先需要调用SHBrowseForFolderWINSHELLAPI LPITEMIDLIST WINAPI SHBrowseForFolder( LPBROWSEINFO lpbi)1 BROWSEINFO的结构如下:typedef struct _browseinfo { HWND hwndOwn...

2013-12-17 22:59:00 258

转载 文件打开对话框

  CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。  1 要使用CFileDialog,先用CFileDialog构造函数构造一个对象,CFileDialog的构造函数如下:CFileDialog::CFileDialog( BOOL bOpenFileDialog...

2013-12-17 20:55:00 108

转载 HOOK函数(二)——全局HOOK

  如果钩子函数定义于当前进程相关的线程中,则钩子函数只能处理当前进程的线程的消息,如果要想处理当前正在运行的所有进程的鼠标消息和键盘消息,那么安装钩子函数的代码必须实现在动态链接库中。所以如果想让安装的钩子过程与所有进程相关,则应该讲SetWindowsHookEx函数的第四个参数设置为0,第三个参数hMod设置为安装钩子函数的代码所在的DLL的句柄。  下面是创建全局钩子的步骤:...

2013-12-14 23:14:00 233

转载 HOOK函数(一)——进程内HOOK

  什么是HOOK呢?其实很简单,HOOK就是对Windows消息进行拦截检查处理的一个函数。在Windows的消息机制中,当用户产生消息时,应用程序通过调用GetMessage函数取出消息,然后把消息放入到消息队列,再使用消息调度函数DispatchMessage函数讲消息调度给系统,Windows系统会调用创建窗口类时制定的窗口过程中进行次消息的处理。而HOOK函数的话,就可以对此消...

2013-12-14 18:40:00 668

转载 【转】系统托盘的实现

系统环境:Windows 7 软件环境:Visual Studio 2008 SP1 本次目的:实现系统托盘、气泡提示的效果 系统托盘的效果,大家应该都见过,比如QQ、杀毒软件之类的都会在任务栏驻留图标,这对于一些软件的用处非常大,易于操作软件并且可以隐藏软件。如下图所示:要实现系统托盘,就要认识NOTIFYICONDATA结构体,如下:/*...

2013-12-11 15:47:00 139

转载 到底怎么样才叫看书【转载】

到底怎么样才叫看书作者:Tony Zhao来源:博客园发布时间: 2013-11-18 18:31阅读: 5541 次推荐: 68原文链接[收藏]  目录:  一、引入  二、经历了就能理解  三、读书要分级  四、只读经典  五、别吝惜你动笔的那点时间  六、再提笔记  七、大学课程之授课方法  八...

2013-12-06 11:53:00 241

转载 别让用户发呆——设计中的防呆策略【转】

生活中总会有些状况让我们无所适从摸不着头脑:面对一排电灯或空调的按钮,哪个才是控制我想要的?开锁时掏出一把钥匙,哪个才是正确的?拿起U盘插入电脑,朝那个方向才是对的?……类似的犹豫充分说明,你呆住了。现在,是需要“防呆设计”来拯救你了。  防呆定义  防呆(日语:ポカヨケ;英语:Fool-proofing)是一种预防矫正的行为约束手段,运用避免产生错误的限制方法,让操作者不需要花...

2013-11-04 17:06:00 151

转载 【STL】string 常用函数

string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常...

2013-10-29 13:23:00 54

转载 Windows下的进程【一】

什么是进程?进程就是一个正在运行的程序的实例,由两部分组成:内核对象。操作系统用内核对象对进程进行管理,内核对象是操作系统保存进程统计信息的地方。地址空间。其中包含所有可执行文件或DLL模块的代码和数据,以及一些其他的数据,提供线程运行的环境。  进程比较”懒惰“,它不做任何事情,所有的事情都交给线程在它的上下文中运行。一个进程可以拥有多个线程,多个线程公用一个...

2013-10-28 09:42:00 128

转载 博客园小技巧【转载】

原文章地址:http://www.cnblogs.com/vamei/archive/2012/11/29/2793568.html博客园小技巧作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!在博客园写博的半年中,我有时会纠结于一些诸如写作格式和显示效果之类的小问题。我想任何一个热衷...

2013-10-28 09:21:00 94

转载 Windows下的多线程

  Windows下的进程和Linux下的进程是不一样的,它比较懒惰,从来不执行任何东西,它只是为线程提供执行环境,然后由线程负责执行包含在进程的地址空间中的代码。当创建一个进程的时候,操作系统会自动创建这个进程的第一个线程,成为主线程。线程由两部分组成:一是线程的内核对象。操作系统用它来对线程实施管理,内核对象也是系统用来存放线程统计信息的地方。二是线程栈。线程栈用于维护线程在执行代码...

2013-10-24 16:43:00 126

转载 【Windows】Windows中的数据类型以及命名

一、大写标示符Windows中的很多标识符都是以两个或者三个大写字母作为前缀的,且其后紧跟一个下划线。这些标识符都是常量数值,前缀表明该常量的一般类别。如下前缀常量CS(Class Style)类风格选项CW(Create Window)创建窗口选项DT(Draw Text)  文本绘制选项IDI(ID ...

2013-10-09 21:23:00 228

转载 【文档管理系统】【转】什么是元数据

一 、什么是元数据?  元数据(MetaDate),关于数据的数据或者叫做用来描述数据的数据或者叫做信息的信息。这些定义、数据列或其相关数据(位于何处、如何联系、拥有者)。举几个简单的例子:使用过数码相机的同学都应该知道,每张数码照片都会存在一个EXIF信息。它就是一种用来描述数码图片的元数据。根据EXIF标准,这些元数据包括:ImageDescription(图像描述、...

2013-10-08 22:49:00 161

转载 【Linux 读书笔记】Linux文件的硬连接和符号连接

连接文件是Linux 文件类型执行,分为硬连接和符号连接两种。一 相关介绍硬连接:目录项和文件inode节点之间的连接称之为硬连接。硬连接只是在某个目录下新增一个该文件的关联数据。 我们知道在Linux的EXT2文件系统中,会给目录分配一个inode和至少一个块。其中inode记录该目录的相关属性,并指向所分配的块;块记录在这个目录下的相关文件的关联性。而对于文...

2013-05-04 12:54:00 162

转载 【读书笔记--Linux】Linux文件管理

一 文件的状态信息 每个文件都有自己的状态信息,如文件的大小、文件的所有者以及修改日期等,这些是与文件的内容分开存储的。 Linux下使用stat函数获得一个文件的状态int stat(const char* file_name, struct stat* buf)int fstat(int fd, struct stat * buf)int ls...

2013-05-03 15:25:00 97

转载 【读书笔记--Linux】Linux文件IO

1 打开文件1 int open(const char *pathname, int oflag, mode_t mode) 函数说明 参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的旗标: O_RDONLY 以只读方式打开文件 O_WRONLY 以只写方式打开文件 ...

2013-05-03 10:19:00 91

空空如也

空空如也

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

TA关注的人

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