我理解.lib和.dll之间的区别。
我有一个可执行的:a.exe,它引用了b.dll。当我启动a.exe,然后为a.exe创建一个新的Windows进程,但没有b.dll的Windows进程。 b.dll是否表示为Windows进程?
答案 0 :(得分:3)
DLL被加载到可执行文件的地址空间中,它不是一个单独的进程。加载DLL有两种方法。通过Windows中的PE加载程序或使用LoadLibrary和GetProcAddress
如果在编译和链接exe时引用了DLL,则会写入Import Address Table。这允许PE加载程序找到所需的DLL并引用所需的函数作为启动进程的一部分。 DLL具有相应的导出地址表,允许加载程序找到所需的函数。
CFF Explorer是理解PE格式的有用工具。特别是导入和导出表是可见的。