1

我了解 .lib 和 .dll 之间的区别。

我有一个可执行文件:a.exe,它引用了 b.dll。当我启动 a.exe 时,为 a.exe 创建了一个新的 windows 进程,但没有 b.dll 的 windows 进程。b.dll 是否表示为 Windows 进程?

4

1 回答 1

3

DLL 被加载到可执行文件的地址空间中,它不是一个单独的进程。加载 DLL 有两种方式。通过 Windows 中的 PE 加载程序或使用LoadLibraryGetProcAddress

如果在编译和链接 exe 时引用了 DLL,则会写入导入地址表。这允许 PE 加载器找到所需的 DLL 并引用所需的函数作为启动进程的一部分。DLL 有一个相应的导出地址表,允许加载程序找到所需的函数。

CFF Explorer是了解 PE 格式的有用工具。特别是导入和导出表是可见的。

于 2013-10-12T21:56:06.540 回答