.NET EXE和DLL之间的堆栈/堆差异

时间:2011-04-17 09:26:20

标签: c# .net windows dll

我很困惑这个问题很久了:

.NET EXE和DLL文件都有地址空间。我知道他们都有代码空间和全局变量空间。但我想知道DLL是否有自己的堆和堆栈空间。

2 个答案:

答案 0 :(得分:6)

该进程拥有堆。每个线程都拥有自己的堆栈。当EXE调用DLL中的函数时,使用相同的堆栈,因为函数调用在同一个线程中。

要做的另一点是该进程具有加载EXE和DLL的地址空间。

答案 1 :(得分:2)

AFAIK,

EXE:

  • 它是一个可执行文件。
  • 当系统启动新的exe时,会创建一个新进程

DLL

  • 它是一个动态链接库。

点击此处了解详情:Differences between exe and dll