【发布时间】:2012-12-31 19:24:51
【问题描述】:
今天我在讨论库没有入口点。通常可执行文件加载库,入口点是可执行文件本身的主要点。
是否存在库本身可以有入口点的例外情况??
更新:
@sgr91 解释说 DllMain 是 Windows 的入口点! linux 呢?还是只是 Windows 的一个功能?
【问题讨论】:
-
DLL 中的入口点是可选的。函数
DllMain是DLL 的入口点。如果你想对 DLL 加载做一些初步的工作,你可以创建函数,否则你可以跳过它。 -
@sgar91 您能否详细说明“dll 加载的初始工作”是什么意思?这对我理解会有帮助:)
-
例如你想在加载 DLL 时调用一个特定的函数,你可以在 DLLMain 中调用该函数。尽管非常不鼓励在 DllMain 中调用外部函数。
-
对不起,我对 Linux 了解不多。
-
@sgar91 在 Linux 上,有 _init 和 _fini 部分,指向在加载/卸载时运行的函数。与
DLL_PROCESS_ATTACH/DLL_PROCESS_DETACH的DllMain的功能大致相同。
标签: dll shared-libraries dynamic-linking entry-point