我最近遇到了一个安装在我的系统上的 DLL,Dependancy Walker(以及我尝试过的所有其他实用程序)说按名称或序号导出为零,但该文件的大小约为 4mb。我认为 DLL 的唯一目的是导出函数以供其他代码使用,那么没有可见导出的 dll 的目的是什么?
问问题
260 次
2 回答
4
将 DLL 视为函数的容器的一种方式。从 DLL 导出函数会使这些函数对 DLL 外部的调用者可见。虽然从 DLL 导出函数可能是提供对它们的访问的最常见方式,但许多平台提供了其他方式来访问尚未导出的函数,例如 .NET Framework 和 Java 中的反射和(我认为)中的 LoadLibtary / GetProcAddress Win32
这样做的原因是多种多样的,通常是因为在库中拥有函数对开发人员有利,但不希望从外部应用程序调用这些函数
于 2010-01-30T04:21:18.480 回答
3
仅资源DLL,也许?例如,这些通常用于本地化目的。
编辑:也可以有一个带有代码的 DLL,该代码在 DllMain() 中执行某些操作以某种方式使其功能可用。例如,DLL 可以向某个全局调度程序注册自己,或者创建命名内核对象...
于 2010-01-30T14:54:38.133 回答