可執行文件如何精確地從DLL中定位函數?我知道DLL文件具有入口點,但是可執行文件如何用名稱定位這些入口點,因爲DLL中的所有內容都是1s和0s?可執行文件如何從DLL文件中查找函數?
回答
您可以針對特定的.lib文件進行編譯,該.lib文件是從用於創建DLL的相同代碼派生而來的。如果您使用完全相同的設置完成此操作,則會保留入口點,並且調用程序將這些入口點構建到代碼中。這就是爲什麼用不同版本的VStudio編譯DLL可能會破壞一些東西:C運行時庫和其後的VStudio的其他細節不完全相同,因此DLL和EXE都有不同的入口點。但是如果你在同一代技術上編譯,那麼他們會自動排隊。
嗯,我總是被告知它包含機器指令,如可執行文件。 –
嗯,但你基本上有一個確切的原理圖,當你製作你的exe文件時,所有東西都來自.lib文件,所以它知道這些東西已經在哪裏了。這就是它不會讓你編譯使用DLL的原因,除非你在同一代編譯器上生成了正確的.lib文件。 –
因此,如果我的DLL有函數「CreateWindow」它會包含創建窗口或只是函數名稱的說明嗎? –
- 1. helink dll可執行文件
- 2. 如何找出可執行文件將加載哪個dll?
- 3. 查找DLL的可執行文件的順序是什麼?
- 4. CreateProcess如何找到可執行文件?
- 5. 查找可執行文件,也是那些未標記的可執行文件
- 6. 如何從當前可執行文件獲取函數地址?
- 7. 如何將函數從C++可執行文件暴露給LuaJIT
- 8. 使用.dll文件編譯可執行文件,.dll相對於.exe文件
- 9. .dll使用主可執行文件中定義的函數的插件
- 10. 與DLL彈簧啓動可執行文件的可執行文件
- 11. 如何查找從Python命令行定義函數的文件
- 12. 如何在使用pyinstaller的可執行文件中包含.dll文件?
- 13. 如何查找任何人可執行的文件/目錄?
- 14. 如何在可執行文件中嵌入openCV Dll
- 15. 從lib中導入函數。/dll文件
- 16. 從Linux可執行文件
- 17. 在Cabal測試套件中查找我的可執行文件
- 18. 如何以編程方式查找可執行文件引用
- 19. 如何防止在$ PATH上查找可執行文件?
- 20. gcc如何查找,ld和其他binutils可執行文件?
- 21. 如何使用install4j查找系統可執行文件路徑?
- 22. 在可執行文件中使用分組DLL DLL
- 23. 如何查找正在執行的文件的行數?
- 24. 沒有可執行文件找到匹配命令「dotnet-./..dll」
- 25. C++可執行文件 - MSVCR100.dll未找到錯誤
- 26. 找出哪些可執行文件引用了.NET dll?
- 27. 將類庫dll文件轉換爲可執行文件
- 28. 如何找到函數所在的可執行文件中的位置?
- 29. 如何在bash中找到可用的可執行文件
- 30. 可否在我的路徑中查找可執行文件?
所有文件中的所有內容都是1s和0s。 –
http://stackoverflow.com/questions/124549/what-exactly-are-dll-files-and-how-do-they-work – Anil
DLL格式與EXE相同,所以[在這裏閱讀](https:// msdn.microsoft.com/en-us/library/windows/desktop/ms680547(v=vs.85).aspx) – mpiatek