VC++技术内幕笔记
yuanweihuayan
准备研究发布windows内核相关文章
展开
-
第一章:Microsoft Windows和Visual C++
1.1Windows的编程模式1.基于Windows的程序和基于MS_DOS程序之间的一个最根本的差别,就在于MS_DOS程序是通过调用操作系统的功能来获得用户的输入,而Windows程序则是通过操作系统发送的消息来处理用户输入的2.VC项目文件说明 .opt 工程关于开发环境的参数文件。如工具条位置等信息;保存工作空间的配置.aps (AppStudio File),资源原创 2011-06-14 20:23:00 · 1056 阅读 · 0 评论 -
窗口Z-Order顺序,组件tab-oder顺序,WS_CLIPCHILDREN/WS_CLIPSIBLINGS的再理解
刚看了http://www.cnblogs.com/helloj2ee/archive/2009/05/29/1491822.html上"关于WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解(个人认为还是相当全面的)" ,写的真是不错!但是也不能保证他写的都对,我下面以我自己的理解写的读后感,有参考他,还有M$自己的解释,虽然不一定都对,但是不理解的我也得先找个理由解释解释转载 2012-06-15 11:43:59 · 3295 阅读 · 0 评论 -
CRT中的时间(time_t和tm)
时间处理时实际项目中经常碰到的问题,这里介绍最常用的时间处理函数。 首先介绍基本的时间概念。时间一般分为两种,一种是本地时间(Local Time),一种是协调世界时间(Coordinated Universal Time ,UTC),也就是传说中的格林威治时间。本地时间与UTC时间之间的差即为时差,比如,北京时间(东八区)比UTC时间早8个小时。 C运行库中处理时间的函数主要转载 2011-10-08 22:30:26 · 2529 阅读 · 2 评论 -
CRgn几种创建方法,不规则窗体
一、序言 在绝大多数的Windows应用程序中,其窗体都是使用的正规正矩的矩形窗体,例如我们常用的,“记事本”,“扫雷”,等等。矩形窗体,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中使用足矣。但在某些娱乐游戏程序中使用就略显呆板些了,这时若用不规则窗体替代原先的矩形窗体,将会使这类程序更添情趣。典型的例子有windows 自代的Media Player,新版本的Me转载 2011-11-01 11:19:12 · 1357 阅读 · 0 评论 -
Windows中的时间(SYSTEMTIME和FILETIME) .
上一篇中介绍了C运行库中的时间处理函数。这一篇介绍Windows SDk中提供的时间函数。两种时间系统之间没有本质区别(事实上CRT时间是用Windows时间实现的,当然这是说的VC实现),同样提供本地时间和UTC时间之间的转换。不过CRT中的tm时间在SDK中对应为系统时间(S转载 2011-10-08 22:31:06 · 1813 阅读 · 0 评论 -
关于GetClientRect和GetWindowRect 类的函数再总结
1. 以对话框上的一个控件为对象讨论:假设对话框的大小为rcClient,控件的大小rcCtrl;也就是GetWindowRect( &rcClient );■ GetWindowRect: m_ctrl.GetWindowRect( &rcCtr原创 2011-10-10 16:07:57 · 2175 阅读 · 0 评论 -
VC-监视程序的编制
监视程序,这个名字听起来似乎很陌生。它的用途主要是在后台监视系统中关键信息的改变,比如注册表的改变及硬盘上由于文件操作引起的改变等等。也许有人会问了,编制这样的程序有什么价值呢?硬盘上文件改变了,我只要在资源管理器里点一点不就全都清楚了吗?问题当然不会这样简单,如今大家的硬盘转载 2011-09-06 21:42:13 · 1289 阅读 · 0 评论 -
如何利用WinDbg找出程序崩溃的位置
之前碰到论坛里有几个好友,说程序不时的崩溃,什么xxoo不能read的! 如果光要是这个内存地址,估计你会疯掉~~所以分享一下基本的调试技巧,需要准备的工具有WinDbg + VC6.0,下面是自己整理的一份自动生成DUMP文件的源代码,只需要添加到工程即可,源代码如下:转载 2011-09-07 16:43:39 · 4667 阅读 · 0 评论 -
第十章:位图
1. Windows的位图实际上就是一些和显示像素相对应的位阵列.2. GDI位图和设备无关的位图是两种不同的Windows位图.GDI位图是由Microsoft基本类库中的CBitmap类表示的.在CBitmap的对象中,包含了一种和Windows的GDI模块有关的Wind原创 2011-08-03 22:35:07 · 1686 阅读 · 0 评论 -
容易犯错的一些东西
1. CMenu菜单的清除:ClearMenu(){ // 移除原有的菜单项 int subMenu1Count = m_Menu.GetMenuItemCount(); for(int i = subMenu1Count - 1; i >= 0; i--) { m_Menu.DeleteMenu(i, MF_BYPOSITION);原创 2011-06-25 16:31:00 · 786 阅读 · 0 评论 -
第六章:模式对话框和Windows通用控件---第八章:使用ActiveX控件
第六章:模式对话框和Windows通用控件1. DoDataExchange、DDX_(交换)和DDV_(确认)函数都具有双向性.如果调用UpdataData时传给他的参数为FALSE,那么这些函数就会将数据成员中的值传递给对话框中的控件.否则为TRUE时,这些函数就会将数据从对话框的控件传递给数据成员2. 正如Enter键可以触发OnOK函数的调用一样,Esc也可以触发对OnCancel原创 2011-06-26 20:44:00 · 1130 阅读 · 0 评论 -
第五章:图形设备接口(GDI)、颜色及字体
1.通常窗口的客户区并不包括边框、标题栏和菜单栏.因此如果创建了一个CClientDC对象,则该设备环境的映射区域也仅限于客户区域,即用户不可能在客户区域之外绘图.如果创建的是CWindowDC对象那么点(0,0)指的就是整个屏幕的左上角,这时就允许用户在显示器的任何地方绘图.包括窗口边框、标题栏等等.但是我们要记住:视图窗口没有非客户区,因此CWindowDC更适合于框架窗口,而不是视图窗口原创 2011-06-26 19:45:00 · 1827 阅读 · 0 评论 -
第二章-第四章:基本事件处理,映射模式和滚动视图-从”Hello World”着手学习AppWizard
第二章没有内容.第三章:从”Hello World”着手学习AppWizardOnDraw:每当视窗需要被重新绘制时,应用程序框架都要调用OnDraw函数.当用户改变了窗口的尺寸,或者当窗口恢复了先前被遮盖的部分,或者当应用程序改变了窗口数据时,窗口都要被重新绘画.尽管可以随时对窗口进行绘制,不过最好还是等变化内容累积到一定程度后再一并在onDraw函数处理.第四章:基本事件处理,映射原创 2011-06-15 23:08:00 · 1248 阅读 · 0 评论 -
第四章:进程
1. 进程的组成:◆ 一个内核对象,操作系统用它来管理进程。内核对象也是系统保存进程统计信息的地方。◆ 一个地址空间。其中包含可执行文件或DLL模块的代码和数据。此外它还包含动态内存分配,比如线程堆栈和堆的分配。2. CUI程序的链接开关是:/SUBSYSTEM:CONSOLE入口点函数:_tWinMain或者_tmain(具体的符号取决于我们了是否要使用Unicode字符串.操作原创 2011-07-24 21:21:18 · 1445 阅读 · 0 评论