随笔分类 - win32SDK编程
摘要:# SetTimer 在一个不具有窗口的线程中创建计时器,调用线程必须具有消息循环去派遣消息,否则计时器回调函数是无法调用的。根据微软官方的解释是计时器回调函数是默认的窗口回调函数调用的,所以如果没有消息循环进行消息派遣,默认的窗口回调函数是无法执行的,对应的计时器回调函数也就不会调用。 ,它是框架窗口的子窗口同时也是各个子文档窗口的父窗口。框架窗口和各个子文档窗口都是自定义的窗口类。 MDI程序中的一些要点 窗口中的菜单资源是属于框架窗口,也就是说如果要改变菜单需要面向框架窗口操作。如果需要更改菜单可以向客户窗口发
阅读全文
摘要:前言 为了熟悉调试子系统与调试器之间的联系,以及了解调试器各种断点的原理以及win32调试API的使用自己尝试写了一个简单的调试器。中间遇到了很多问题,总结一下希望能帮助到遇见类似问题的人。 问题一 CreateDialogParam()创建非模态对话框的时候,虽然其消息循环在外部,但并不是调用完就
阅读全文
摘要:窗口关系 在windows系统中,系统会为每个窗口都维护一个窗口对象(即一个数据结构)。这个数据结构的成员就含有owner和parent,分别是窗口的拥有者窗口和父窗口。 所以两个窗口可能存在两种关系:①父子关系 ②拥有与被拥有 父子关系(parent—child) 可以在任何时期改变窗口的父子关系
阅读全文
摘要:前言 学习windows通道时,用他去完成自己的cmd小工具时遇到了一些问题总结一下。 ① 关于STARTUPINFO结构:因为为了在cmd程序中通过通道与我们的程序交互,我们需要把cmd的输入输出变为匿名通道的输入输出。这就需要改变STARTUPINFO结构。 注意在把输入输出句柄改变时不要忘记改
阅读全文
摘要:前言 写了一个Dll注入工具,结果发现程序在其他机器上会出现丢失“MSVCR100D.dll”。这个dll是vs2010自带的动态链接库,如果在没安装vs2010运行库的电脑中使用就会出现这种情况。我在网上搜了一下并总结所涉及的知识。 /MD , /MDd 与 /MT , /MTd 这些是程序在被编
阅读全文
摘要:当WM_PAINT消息不是由函数InvalidateRect产生的时(即通过最大话,最小化,移动,下拉菜单等),系统会先产生连续产生若干个WM_ERASEBKGND消息,紧接着在产生WM_PAINT消息。 如果程序没有自己处理WM_ERASEBKGND消息则默认由函数DefWindowProc函数处
阅读全文