这篇笔记是我在读《Windows核心编程》第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对实现的推断,因此不少条款和Windows实际机制可能有出入,但应该是合理的。开头几章由于我追求简洁,往往是很多单独的字句,后面的内容更为连贯。
海量细节。第1章错误处.....
分类:
Windows程序 时间:
2014-07-22 23:13:35
阅读次数:
1040
这本书的作者Jeffrey Richter也是《Windows核心编程》的作者。《Windows核心编程》更多的是对window系统相关知识的挖掘积累。《CLR via C#》则更多的讲解了语言的设计、类库的设计。这本书可以提供几个有益的视角:C++的缺陷是什么,C#是如何规避的,C#为此付出了什么代价参照C#的选择,我们在C++开发中可以做什么C#的易用性是怎么产生的,C++我们可以做什么提高易...
分类:
编程语言 时间:
2014-07-22 23:03:35
阅读次数:
267
DLL相关的东西1、DLL的加载方式隐式:#pragma comment(lib,
"XX.lib");编译器去查找名为XX.dll的DLL,除了名字相同,该DLL和该LIB的GUID也相同。显式:HINSTANCE hInst =
LoadLibrary(TEXT("XX.dll"));if(N....
有时候我们会遇到window进程间共享数据的需求,比方说我想知道系统当前有多少某个进程的实例。我们可以在程序中定义一个全局变量,初始化为0,每当程序启动后就加1,当然我们我们可以借助第三方介质来储存这个变量,然后解析。这样做必须做到先写入后解析,不能实时更新数据。如果不考虑其他储存介质,只是进程中的通信,应该怎么做呢?windows提供了一些可行的方法,下面介绍常用的两种。
一、共享数据段
#...
DLL重定向因为DLL的搜索路径有先后次序,假设有这样的场景:App1.exe使用MyDll1.0.dll,
App2.exe使用MyDll2.0.dll, MyDll1.0 和
MyDll2.0是同一个DLL的两个版本,1.0为旧版本,2.0为新版本。而如果MyDll2.0.dll的存放路径的优先...
关于DLL的延迟加载延迟加载DLL,使用的是隐式加载方式,当为exe使用的DLL指定为延迟加载的时候,连接器会将exe的【导入段】中去除该DLL的相关信息,同时在exe中嵌入一个新的【延迟加载段】表示要从该DLL中导入哪些函数。通过让对延迟加载函数的调用跳转到delayimp.lib中的__dela...
《windows核心编程》第26章详细的分析了窗口消息,让人豁然开朗。学习小结:1、消息队列分为Post消息队列、Send消息队列、虚拟输入消息队列和应答消息队列。2、PostMessage是将消息发送到消息的线程队列然后返回。3、SendMessage表面看是发送消息,等消息处理完毕后返回。实际上...
分类:
其他好文 时间:
2014-05-29 12:14:59
阅读次数:
243
1.首先F3加载应用程序,然后一路F8直到自己停下来,或者是ctrl+F8他会自己运行,直到出现自己停下的时候(也就是OllyDbug把程序的控制权交出,转由应用程序自己控制,呵呵,不行,还得唠唠其他的......下面先跳转一下)
控制权、领空:关于程序的控制权和领空的问题,OllyDbug是一个强大的程序调试工具,具有强大的调试和反汇编能力,他会在应用程序拉到内存的那一刻,就牢牢的控制了该程序,具体的方法是(个人猜想而已):OD把程序拉到内存的同时,就是一个领孩子入瓮的问题,呵呵,实际这里...
分类:
其他好文 时间:
2014-05-22 07:38:22
阅读次数:
307
表面上看,在windows中。如果是a进程创建了b进程,那么a进程就是b进程的父进程,反之,如果是b创建了a,那么b进程就是a的父进程,这是在windows出现以来一直是程序猿们都证实的,但是在在win Vista后面有了一个新安全消息机制,UAC(user account control),这里科普下UAC的功能,其实UAC就是大家常见的安装软件或者启动程序的时候的出现的全屏变暗的一个提示框,这...
分类:
其他好文 时间:
2014-05-13 00:20:04
阅读次数:
608