DLL 文件究竟是如何工作的?它们似乎有很多,但我不知道它们是什么或它们是如何工作的。
那么,他们之间有什么关系呢?
最佳答案
什么是 DLL?
动态链接库 (DLL) 类似于 EXE,但它们不能直接执行。它们类似于 Linux/Unix 中的 .so 文件。也就是说,DLL是MS对共享库的实现。
DLL 非常像 EXE,文件格式本身也是一样的。 EXE 和 DLL 都基于可移植可执行 (PE) 文件格式。 DLL 还可以包含 COM 组件和 .NET 库。
DLL 包含什么?
DLL 包含 EXE 或其他 DLL 使用的函数、类、变量、UI 和资源(例如图标、图像、文件...)。
库类型:
几乎在所有操作系统上,都有两种类型的库。静态库和动态库。在 Windows 中,文件扩展名如下:静态库 (.lib) 和动态库 (.dll)。主要区别在于静态库在编译时链接到可执行文件;而动态链接库直到运行时才链接。
有关静态库和动态库的更多信息:
您通常不会在计算机上看到静态库,因为静态库直接嵌入到模块(EXE 或 DLL)中。动态库是一个独立的文件。
DLL 可以随时更改,并且仅当 EXE 显式加载 DLL 时才在运行时加载。静态库一旦在 EXE 中编译就不能更改。 可以单独更新 DLL 而无需更新 EXE 本身。
加载 DLL:
程序在启动时通过 Win32 API LoadLibrary 加载 DLL,或者当它是另一个 DLL 的依赖项时。程序使用 GetProcAddress 加载函数或使用 LoadResource 加载资源。
进一步阅读:
关于windows - DLL 文件到底是什么,它们是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124549/