随笔
windcsn
这个作者很懒,什么都没留下…
展开
-
进程ID和进程HANLE的互换,线程ID和线程HANDLE的呼唤
进程ID到进程HANDLE的转换:HANDLE GetProcessById(DWORD id){ return OpenProcess(0,TRUE,id);}进程HANDLE到ID的转换:DWORD id = GetProcessId(handle);线程ID到HANDLE的转化:HANDLE GetThreadById(DWORD id){ return OpenThread(0,TRUE原创 2005-08-31 17:25:00 · 1841 阅读 · 1 评论 -
为什么有些程序员会觉得自己已经很厉害了呢?
其实自己作为一个程序员,对程序员的特点还是比较了解的.在我看到的程序员当中,很多程序员都很自负,但我也发现这些程序员也是非常爱学习爱上进的人;这里本来就存在着矛盾:为什么爱学习的人同时也是自负的?详细见:http://www.cppblog.com/windcsn/archive/2007/04/02/21127.html原创 2007-04-03 09:36:00 · 3616 阅读 · 0 评论 -
欢迎大家加入我的P2P群,群号是27618239
欢迎大家加入我的P2P群,群号是27618239一起研究P2P的网络技术原创 2006-07-19 09:10:00 · 2335 阅读 · 0 评论 -
Code Review的注意事项
进行CODE REVIEW是有好处的,是一个将有经验的开发者传授知识给缺少经验开发者的好机会。不过这里需要注意几个事情:1. REVIEW团队的大小;如果人太多,是很耗时的,一般以两个人为主,一个是作者,一个是REVIEWER,后者提出怎么样修改,然后两个人一起商议是否这样修改。2.如果REVIEW的代码或系统太多或人太多,这个时候采用REVIEW代码是低效的,这个时候应该REVIEW的设计类图,原创 2005-11-11 22:13:00 · 2189 阅读 · 2 评论 -
什么时候不应该重构?
代码不能工作了,或者说有些代码没有办法修改了,根本就没有办法让代码保证稳定;这个时候不应该重构。重构至少要保证代码可以正常的工作;重构只能帮助你找BUG,但不能绝对消除BUG。这种情况下,最好重新设计和重写。 当你工期接近死期的时候。因为这个时候你重构的效果会在死期之后才能体现,但太晚了。另外一种说法就是,如果你为了功能性而放弃了质量,你的代码存在隐患,你就想负债一样,这些债务在适当的时候要还一原创 2005-11-11 22:20:00 · 2853 阅读 · 0 评论 -
重构-代替类型代码几中方式的比较(Replace type code with ...)
在重构中对类型编码有一些专用的重构方法,其中有使用类、子类、和状态/策略模式三种方式,这里对他们进行分析和比较。说明一下:类型编码(type code)是一些常量或变量,一般有多个可能的值;这么说可能还不明白,看下面吧。首先说使用类来消除类型代码吧。这种类型代码,一般都有定义好的常量值,例如血型(A,B,O等),但具体的类行为不会因为这些编码值不同而不同,也就是说这些编码仅仅作为类的一个信息的反映原创 2005-11-10 22:55:00 · 2598 阅读 · 3 评论 -
在程序的Title Bar上输出文字
在看Windows程序设计的时候,看到得到设备内容的不同函数,其中介绍GetWindowDC得到整个程序的所有更新区域的DC,包括TITLE Bar窗口,因此想象许多很COOL的程序那样,在窗口的TITLE Bar上做写小动作,这里很简单,以我的阅读的Windows程序设计chm文件的窗口来试验一下。我的目的是在“Windows程序设计”chm文件的窗口Ttitle Bar上输出一行文字:“我的测原创 2005-10-09 21:48:00 · 1627 阅读 · 0 评论 -
代码重构-阅读心得
最近阅读Martin Flower的重构,对自己有许多启发,以前认为一些正确的观点现在看来也不那么正确了,同时发现对重构的理解只有在阅读了书之后更加彻底;在阅读《重构》之后我对其中几点有点感触:在没有具体阅读《重构》之前,我认为重构就是将代码变的容易理解,容易维护,但在阅读了《重构》之后才发现重构不仅可以利用到重新构造已有的代码,也可以帮助我们在阅读代码的过程中增加我们的对代码理解的速度。其实我想原创 2005-10-22 17:18:00 · 3146 阅读 · 0 评论 -
Windows程序设计阅读笔记(4)-得到设备内容HANDLE
得到设备内容HANDLE有两种方法:BeginPaint,GetDCBeginPaint仅仅在WM_PAINT消息处理时使用,GetDC可以在任何时候使用,主要为了响应用户的鼠标和键盘BeginPaint得到的绘图信息结构中的是无效区域,也同时限定了裁剪区域为该无效区域,系统只能在该区域上绘画;GetDC得到HDC有一个裁减区域,它等于更个显示区域的大小,可以在显示区域的任何部分绘画。BeginP原创 2005-10-09 13:55:00 · 1962 阅读 · 0 评论 -
Windows程序设计阅读笔记(1)
Windows可以通过无效区域来设置更新区域的大小,从而不至于将不必要更新的地方更新无效区域(无效矩形)导致系统产生WM_PAINT消息消息队列中不会有多个WM_PAINT消息,如果有多个无效区域,系统在处理WM_PAINT之前将多个无效矩形合并InvalidateRect可以产生一个无效矩形Windows为每个窗口保存一个绘图信息结构,该结构有该窗口最小的无效区域在处理WM_PAINT消息时,调原创 2005-10-08 22:28:00 · 1133 阅读 · 0 评论 -
Windows程序设计阅读笔记(3)-设备内容类型
有四种设备类型:显示器、打印机、内存(或兼容)、信息。每种类型有不同的用途,下表描述:设备类型描述显示器支持在一个视频显示器上绘画操作打印机支持在一个打印机上的绘画操作内存支持在一个位图上的绘画操作信息支持得到设备的数据显示器设备内容程序能够通过调用BeginPaint, GetDC,或GetDCEx函数来获得显示设备内容,程序仅仅在需要对客户区域绘画的时候才去获得DC;完成绘画之后,程序必须释放原创 2005-10-09 10:16:00 · 1627 阅读 · 0 评论 -
Windows程序设计阅读笔记(2)
设备内容是一个结构,它定义了一系列图形对象和与之相关联的属性,也包括影响输出的图形模式。图形对象包括:画线的笔、着色和填充的刷子、屏幕上复制或滚动的位图、定义各种可用色彩的调色板、为了裁剪和其他操作的区域、支持着色和绘画操作的路径。关于设备内容设备独立是WINDOWS的首要特征。应用程序能够在各种设备上绘图。支持设备独立的软件包括在两个DLL中,一个是GDI.dll,被叫做图形设备接口(GDI),原创 2005-10-08 23:10:00 · 1204 阅读 · 0 评论 -
如何知道一个进程运行了多少个实例?
在编写程序的时候,有时我们可能需要知道一个进程运行了多少个实例。首先你可能会想到使用全局变量,但试验结果表明全局变量只在当前进程的范围内有效,一旦你为当前EXE起了另外一个新的进程,为了保证一个进程对全局变量的修改不至于对其他实例造成影响,系统对这些变量采用多份COPY的办法(虽然在启动一个EXE的多个实例进程时系统尽量采用共享内存代码的办法),所以你修改全局变量的值进在当前实例有效。原创 2005-09-03 15:34:00 · 1928 阅读 · 0 评论 -
专心工作还是三心二意?
最近看到公司里面的一些程序员不但干自己工作的同时,还在外面找了些私活做;由此想到自己的一段经历。本人在来公司刚开始的时候还年轻,至少比现在小3-4岁(呵呵),而公司分配的工作对我来说不是太重,我基本都能在70%的工作时间做完,剩下的时间我留给自己学习。因此我自认为自己能力还是可以的。后来一个朋友找到我,说有活可以做还可以转钱,当时听着了呀,反正自己多时间,做就做。于是跟着朋友.net搞到Java(原创 2007-05-11 10:26:00 · 2310 阅读 · 1 评论