Windows的API都是封装在Dll中的。Windows对多个应用装入的同一个DLL采用共享的方法
记得以前用汇编写Windows3.x的DLL的时候,DLL的代码和数据是不能放在同一个段里的,
因为DLL的代码是要被共享的而数据是单独的,Windows在每一次DLL调用时都给数据段的
选择器装入适当的值。到了Windows95和Windows NT 3.51以后,Windows内核采用分页技
术,各个应用有不同的地址空间,但是DLL的代码还是被共享,不同的是这些代码被映射
到不同的地址空间,所以可能会有不同的虚地址(只有NT才有可能,95和98都把它放在
系统区中)。鉴于这种情况,Hook主某一个API是完全有可能的。现在用到的屏幕取词软
件就是通过Hook住OutTextA,OutTextW等API实现的。