HINSTANCE指的是一个线程还是一个进程啊???

来源:百度知道 编辑:UC知道 时间:2024/05/22 04:08:00

是“模块”的实例,和线程和进程关系不大。

你的应用程序a.exe可能需要b.dll的支持,那么在程序运行的时候,a.exe这个进程里面就包含了a.exe模块和b.dll模块,而他们的HINSTANCE其实就是每个模块的进程首地址,也叫做基地址。

我觉得这是个有点混乱的东西, 按微软的说法是它代表一个“实例”。 一个运行着的程序的“实例”是用这个表示的, 一个程序加载的dll的“实例”也是这个表示的。 分配一个内存块的“实例”也是这东西。 可见它基本上不按线程区分, 跟进程有些关系也不绝对。 基本上程序里你得到的这个东西就从某种角度代表的是程序“自己”, 用来跟其他的运行着的程序进行区分。

对于微软发明的这么些各式各样的handle, 我觉得没必要特别的去区分它们,基本上看函数原型要求的是什么你就找给这个的函数要就可以了, 就像搭积木一样, 不用管它什么意义, 类型能凑合上一般就没错。

一个实例,应该是一个进程吧,当然对于单线程的进程来说等效