4
A
回答
9
當一個程序使用一個DLL,它是這樣的:
- 應用負載foo.dll在foo.dll
- 應用程序調用函數
- foo.dll執行函數返回值的應用
隨着包裝DLL,會發生這種情況:
- 應用負載foo.dll(不知道或關心的是foo.dll實際上是在包裝,和原來的DLL已更名爲foo_original.dll)
- foo.dll負載foo_original.dll
- 應用程序調用函數在foo.dll
- foo.dll將呼叫轉送至foo_original.dll
- foo_original.dll執行功能,並返回值
- foo.dll返回值foo.dll到應用
釷爲DLL包裝提供了檢查/記錄應用程序對原始DLL進行的所有調用的機會,並且有機會修改在這兩者之間傳遞的數據。
2
DLL包裝調用另一個DLL來提供所需的功能。出於簡單性或兼容性原因,它可能會也可能不會提供其特殊的API。 This is a tutorial,它顯示瞭如何製作包裝器DLL。 在這個特定的教程中,來自DirectX 9的一些類被包裝並用於在Blitz3D窗口內渲染一個茶壺。
+0
+1另一個DLL *或靜態庫*。 DLL-wrapper最強大的用途之一是單個模塊駐留一個靜態庫,該庫在進程地址空間中應該是它自己的唯一拷貝,但是也被多個DLL使用,也許還有根EXE。將它埋在一個單獨的DLL中,並將你需要的部分暴露給其他模塊,以確保這可以發生。 – WhozCraig 2013-02-28 10:30:52
相關問題
- 1. 兩個DLL聲明之間的區別
- 2. dll和nuget包有什麼區別?
- 3. LIB和DLL的區別
- 4. 確定COM和.NET的DLL之間的區別在PowerShell中
- 5. log4net dll中的XmlCofigurator和DomCofigurator之間的區別是什麼?
- 6. Windows上的* .a和* .dll之間的區別
- 7. DLL包含什麼?調試DLL和發佈DLL有什麼區別?
- 8. .NET EXE和DLL之間的堆棧/堆區別
- 9. 共享對象和DLL之間的區別
- 10. 硬包裝和軟包裝之間的區別?
- 11. 傳統DLL與COM DLL的區別
- 12. 託管和非託管DLL之間有什麼區別
- 13. Javascript包裝方法之間的區別
- 14. C#包裝類爲c + +的DLL dll
- 15. COM與註冊免費DLL之間的區別?
- 16. dll的FileVersion和ProductVersion有什麼區別?
- 17. DLL引用的區別?和用途?
- 18. DLL和LIB擴展的區別
- 19. 在本地DLL中包裝CLR DLL
- 20. stlportd.5.2.dll和stlportstld.5.2.dll有什麼區別?
- 21. COM DLL和VC++ MFC DLL有什麼區別?
- 22. 這些IBM.Data.DB2 dll之間有什麼區別?
- 23. 包含和塊之間的區別Jade
- 24. msbuild發佈和包之間的區別
- 25. 類和包之間的區別
- 26. C#.NET包裝的COM DLL
- 27. NuGet包裝和引用DLL的
- 28. 溢出包裝和分詞之間的區別?
- 29. 「包裝」和「方法」描述符之間的區別?
- 30. yarn.lock和npm的包裝鎖之間有什麼區別?
看看http://www.codeproject.com/Articles/224869/Yet-another-DLL-wrapper-for-dynamic-loading有關使用dll包裝的信息 – chrisw 2013-02-28 10:04:26
我會從[this]開始, (http://bit.ly/XcBvzy),並隨我記錄。 – WhozCraig 2013-02-28 10:04:52
@WhozCraig,我在搜索護目鏡,但我不明白什麼dll包裝? – samprat 2013-02-28 10:06:48