我最近在我的系统上安装了一个DLL,Dependancy Walker(以及我试过的其他所有实用程序)说按名称或序号输出为零,但文件大小约为4mb。我认为DLL的唯一目的是导出函数以供其他代码使用,那么没有可见导出的dll的目的是什么?
答案 0 :(得分:4)
想到DLL的一种方法是作为函数的容器。从DLL导出函数使这些函数对DLL外部的调用者可见。虽然从DLL导出函数可能是提供对它们的访问的最常用方法,但许多平台提供了其他方法来访问尚未导出的函数,例如.NET Framework和Java中的反射以及(我认为)LoadLibtary / GetProcAddress in的Win32
执行此操作的原因各不相同,通常是因为开发人员在库中具有函数是有益的,但不希望从外部应用程序调用这些函数
答案 1 :(得分:3)
资源专用DLL,也许?例如,它们经常用于本地化目的。
编辑:它也可能有一个DLL,其代码可以在DllMain()中执行某些操作,以某种方式使其功能可用。例如,DLL可以向某个全局调度程序注册自己,或者创建命名的内核对象......