Dll运行机理
咸清 2011-02-28 01:40:25 “而对于DLL,函数储存在一个独立的动态链接库文件中。在创建Windows程序时,链接过程并不把DLL文件链接到程序上。直到程序运行并调用一个DLLs中的函数时,该程序才要求这个函数的地址。此时Windows才在DLL中寻找被调用函数,并把它的地址传送给调用程序。一般情况下,如果一个应用程序使用了动态链接库,Win32系统保证内存中只有DLL的一份复制品,这是通过内存映射实现的。DLL首先被调入Win32系统的全局堆栈,然后映射到调用这个DLL的进程的地址空间。在Win32系统中,每个进程拥有自己的32位线性地址空间。如果一个DLL被多个进程调用,每个进程都会被分配一份该DLL的映像。”
既然是被调入Win32系统的全局堆栈,那么我就想知道,dll的代码区、数据区都拷贝到内存中了吗?
如果这个dll处于网络中的一个位置,映射到调用这个DLL的进程的地址空间时,会不会包含dll的详细地址?IP+端口号+路径……
欢迎发表意见!
十分感谢阅读!