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. LIB和DLL的区别
- 3. 确定COM和.NET的DLL之间的区别在PowerShell中
- 4. Windows上的* .a和* .dll之间的区别
- 5. .NET EXE和DLL之间的堆栈/堆区别
- 6. 硬包装和软包装之间的区别?
- 7. 托管和非托管DLL之间有什么区别
- 8. 传统DLL与COM DLL的区别
- 9. Javascript包装方法之间的区别
- 10. C#包装类为c + +的DLL dll
- 11. DLL和LIB扩展的区别
- 12. dll的FileVersion和ProductVersion有什么区别?
- 13. 在本地DLL中包装CLR DLL
- 14. 这些IBM.Data.DB2 dll之间有什么区别?
- 15. COM DLL和VC++ MFC DLL有什么区别?
- 16. stlportd.5.2.dll和stlportstld.5.2.dll有什么区别?
- 17. “包装”和“方法”描述符之间的区别?
- 18. yarn.lock和npm的包装锁之间有什么区别?
- 19. 数组和包装列表之间的区别?
- 20. yarn/npm5 lockfiles和精确包装版本之间的区别?
- 21. 如何包含已包装到新dll中的dll文件?
- 22. JAR和包之间有什么区别?
- 23. VB6 EXE和VB.NET DLL之间的IProgressCallBack
- 24. EXE和Global Hook DLL之间的通信
- 25. .exe和.dll之间的共享配置
- 26. 使用Zend Framework,模块和包装之间有什么区别
- 27. 包装第三方DLL
- 28. typedef解决DLL包装
- 29. 引用在包装DLL
- 30. '+ ='和'= +'之间的区别?
看看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