动态链接库(.dll、.so 等)是否有入口点?

sp4*_*497 5 dll shared-libraries dynamic-linking entry-point

今天我正在讨论库没有入口点。通常可执行文件加载库,入口点是可执行文件本身的主要入口点。

是否存在例外情况,其中库本身可以有一个入口点?

更新:

@sgr91 解释说 DllMain 是 Windows 中的入口点!那么Linux呢?或者它只是 Windows 的一个功能?

par*_*ish 2

是的,动态库确实有入口点。根据编译器和操作系统的不同,它的命名可能会有所不同(可能会也可能不会公开供使用)。

对于Linux:

void __attribute__ ((constructor)) my_init(void);

void __attribute__ ((destructor)) my_fini(void);
Run Code Online (Sandbox Code Playgroud)

和部分现已过时_init_fini

阅读更多