【发布时间】:2014-02-15 02:13:41
【问题描述】:
我相信这个问题已经被问过很多次了,我已经阅读了大量的文章,但我仍然不知道 不明白。 DLL 究竟在哪里加载?我说的是 DLL 的实际代码。当我打电话给 MessageBoxA 时,它会跳转到哪里?代码是加载到我自己的进程中,还是跳转到其他地方(甚至不确定这是否可能)?
请赐教,这个问题困扰了我很长时间,但我似乎无法弄清楚。
【问题讨论】:
-
快速思考一下:DLL 被加载到进程内存空间中。因此,如果有 5 个程序使用同一个 DLL,则该 lib 将占用内存中的 5 个位置;这与通过中断处理程序或 COM 对象共享的代码不同,它们驻留在自己的单个内存空间中,而不管有多少正在运行的程序需要它。