2013-10-12 57 views
1

我瞭解.lib和.dll的區別。Dll在一個單獨的過程?

我有一個可執行:a.exe,它引用b.dll。當我啓動a.exe時,爲a.exe創建一個新的Windows進程,但沒有b.dll的窗口進程。 b.dll是否表示爲Windows進程?

+1

不,一個DLL被加載到由EXE啓動的進程中。 –

回答

2

該DLL被加載到可執行文件的地址空間,它不是一個單獨的進程。有兩種方式加載DLL。通過Windows中的PE加載程序或使用LoadLibraryGetProcAddress

如果在編譯和鏈接exe文件時引用了DLL,則編寫Import Address Table。這允許PE加載器查找所需的DLL並在啓動過程中引用所需的功能。 DLL具有相應的導出地址表,允許加載程序查找所需的函數。

CFF Explorer是理解PE格式的有用工具。特別是導入和導出表格是可見的。