c++ - 静态库

标签 c++ c windows winapi libraries

当我想调用某些 Windows 函数时,例如 MessageBox,我可以从 user32.dll 导入它并调用(使用 LoadLibrary 和 GetProcAddress)。但是还有一个Visual C++使用的静态库,所以我不需要手动加载DLL和函数。它们是如何工作的?它们是否包含每次调用函数时调用 LoadLibrary/GetProcAddress 的包装器?

最佳答案

您所指的“静态库”实际上是一个 import library .这种类型的库包含告诉链接器每个函数实际存在于哪个库中的记录,并且本身不包含任何代码。链接器在可执行文件中创建导入记录,加载器在加载时解析这些记录。这修复了运行时使用的地址,因此您的代码不需要显式调用 LoadLibraryGetProcAddress

关于c++ - 静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705869/

相关文章:

windows - Qt + 声子 : doesn't play on some computers

c++ - 带纹理的 DirectX Release 函数 (C++)

单独头文件中的 C++ 结构原型(prototype)

c++ - 如何获取两个字符串的所有排列组合?

c - 链表删除函数中,删除节点是否需要使用free?

java - "\n","\t"如何分别加新行和制表符?

c - 在 C 中安装信号处理程序

linux - 有没有办法在 Windows 中获取有关进程的详细信息?

windows - 如何在 Perl 中设置 Win32 系统环境变量?

c++ - 使用 gSoap 链接多个 SOAP 服务时启用保持事件