我对这个术语很困惑.我绝对不喜欢dll中的export这个词.原因只是因为,我不明白它是什么.我不知道在哪里寻找.
它在很多场合使用.
>从DLL导出
>从共享库导出表
> dll导出的函数.
任何人都可以解释一下.这是什么意思?在任何其他情况下,它的含义如何变化?什么是出口表?是PE / ELF文件中的.text / .bss / .data部分吗?
为什么我没有听说过dll导入?如果存在这样的事情.什么时候使用.如果不是太多,一个简单的例子也会很棒.
请澄清,我恳请大家使用简单的术语.我已经困惑了.
解决方法
当函数暴露给其他要使用的程序时,函数将从dll导出. dll的导出表是公开的函数列表及其可用的地址.通常,dll包含一些导出供公共使用的函数,以及其他未导出的函数 – 它们不能被其他dll或程序使用常规方法调用,但它们可以在内部调用为dll.
您不经常谈论“dll import”,因为dll导入不是单个进程.当你链接到一个DLL时,该dll导出的每个函数都可用于你的dll,但是为了链接到一个dll你通常需要一个.h文件来提供声明,一个.lib文件提供了存根导出函数的指针.这两个东西一起构成了dll导入.但是,通过使用LoadLibrary和GetProcAddress函数(相当于POSIX dlopen和dlsym),可以使用dll函数而不需要这些函数.