gpt4 book ai didi

windows - GetModuleHandle() 是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 12:59:47 27 4
gpt4 key购买 nike

我正在阅读 ,它描述了 GetModuleHandle() API 如下:

当您调用此函数时,您会传递一个以零结尾的字符串,该字符串指定加载到调用进程地址空间中的可执行文件或 DLL 文件的名称。 如果系统找到指定的可执行文件或 DLL 名称,GetModuleHandle 返回加载该可执行文件或 DLL 文件镜像的基地址。

我想知道系统在哪里寻找文件名?当我将一些文件加载​​到我的进程地址空间时,是否有一些集中表来存储所有加载文件的名称及其加载地址的映射?如果我们根据字符串匹配来搜索,效率是不是有点低?

非常感谢您的见解。

最佳答案

加载的模块信息在进程的 PEB 中作为链表维护,在名为 PEB_LDR_DATA 的结构中。如果获得 PEB 指针,则可以遍历此列表并获得 DLL 名称、基地址、入口点、大小等信息。查看这些页面:
http://msdn.microsoft.com/en-us/library/aa813708.aspx
http://www.codeproject.com/KB/threads/CmdLine.aspx

关于windows - GetModuleHandle() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160659/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com