程序结束后的DLL支持

时间:2018-08-13 19:36:54

标签: c++

我有一个小应用程序。根据命令行参数,它会加载或释放用于过滤系统级输入的库。一旦加载了库,进程死后它将保持活动状态,还是应用程序需要在后台保持活动状态?

3 个答案:

答案 0 :(得分:3)

当一个进程死掉时,它所做的一切都会死掉-包括创建的线程,它加载到内存中的东西(例如DLL),分配的内存等。操作系统之间存在一些差异,但这是总的要点。其中-您的过程终止;它与它所做的所有事情一起消失了(除了sysv共享内存,可能已经被操纵的其他全局资源等例外,但是在大多数方面;当您的进程推高雏菊时,一无所有)。

答案 1 :(得分:0)

即使进程终止后,Dll仍可能保留在内存中。例如,可以将其加载到另一个进程中或仅对其进行缓存。但是请注意,整个dll状态(包括该dll中的代码处理的所有对象和数据)已完全消失,因为该状态是现在不存在的过程的一部分。

答案 2 :(得分:0)

只需澄清一下,DLL是一个机器代码库,它通过额外的代码来扩展可执行文件,仅此而已。所有线程,文件和其他资源都属于您的可执行文件,即使它们是由DLL中的函数创建的。

因此,当可执行文件死亡时,可执行文件创建的所有内容都会死亡。