在windows 95/98/me/nt/2000中,hinstance和hmodule实际上是相同的东西,如果一个函数需要一个hmodule作为参数,那么可以传递一个hinstance,反之也成立。之所以存在着两种结构,是因为在windows 3.x中,hmodule和hinstance用于标识不同的东西。
在windows 95/98/me/nt/2000中,hinstance和hmodule实际上是相同的东西,如果一个函数需要一个hmodule作为参数,那么可以传递一个hinstance,反之也成立。之所以存在着两种结构,是因为在windows 3.x中,hmodule和hinstance用于标识不同的东西。
module database非常靠近exe或dll被载入后的内存地址的起始处,并且内含一些像是程序中的code/data sections被装入到内存中何处等等的信息。模块中的代码和资料并不仅只是编译器为你的程序生成的二进制代码,还包括import table、export table、resource directory….等等。import table(位于.idata section)告诉加载器这个模块需要动态链接哪一个dll中拿一个函数;export table则与之相反,告诉操作系统本模块有哪一个函数要开放给别的模块调用。resource section包含一个类似磁盘目录结构的树形结构,使系统能够快速找到特定的资源。module database内含如何寻找这些sections的信息,以及需要的操作系统的版本,以及该程序是否为console模式….等等。