gpt4 book ai didi

c - 哪个头文件加载 Win32 api 中的 DLL?

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:27 27 4
gpt4 key购买 nike

例如,要调用 MessageBox,我只需要包含 windows.h,所以我假设一些头文件执行实际的 LoadLibrary。

这是如何工作的?

最佳答案

声明MessageBox的Windows头文件声明了它,但没有定义它。换句话说,头文件只是声明有一个函数具有在其他地方定义的特定原型(prototype)。

定义由导入库提供。对于 MessageBox,该导入库是 user32.lib。该导入库被传递给链接器并提供定义。

实现MessageBox的Windows DLL,user32.dll的实际加载是由加载器完成的。链接器发出一个可执行文件,其中包含声明依赖 DLL 和必须导入的函数的元数据。那就是 PE 导入表。在进程加载时,加载程序读取导入表、加载依赖 DLL 并解析引用。

关于c - 哪个头文件加载 Win32 api 中的 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22304715/

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