Reputation: 15787
I understand the difference between a .lib and a .dll.
I have an executeable: a.exe, which references b.dll. When I launch a.exe, then a new windows process created for a.exe, but there is no windows process for b.dll. Is b.dll represented as a windows process?
Upvotes: 2
Views: 835
Reputation: 7271
The DLL is loaded into the address space of the executable, it is not a separate process. There are two ways a DLL is loaded. Either by the PE loader in Windows or by using LoadLibrary and GetProcAddress
If the DLL is referenced when the exe is compiled and linked the Import Address Table is written. This allows the PE loader to find the required DLLs and reference the required functions as part of starting a process. DLLs have a corresponding export address table that allows the loader to find the required functions.
CFF Explorer is a useful tool for understanding the PE format. In particular the import and export tables are visible.
Upvotes: 5