谁是剪贴板的系统所有者?

在阅读有关MSDN中的剪贴板时,我遇到了这样一行:

将内存对象放置在剪贴板上后,该内存句柄的所有权将转移到系统 。 当剪贴板被清空并且内存对象具有以下剪贴板格式之一时, 系统通过调用指定的函数来释放内存对象:…(http://msdn.microsoft.com/zh-cn/library/ms649014 %28VS.85%29.aspx – 内存和剪贴板部分)。

我不太明白的是“谁是系统”? 一个SYSTEM进程? 剪贴板所有者的过程?

谢谢你的帮助! 🙂

你是什​​么意思“操作系统”? 没有“操作系统”的过程。 哪个进程实际上释放了这个对象?

那么,这个过程就叫做“系统”。 但是在这里没有关系,每个使用剪贴板混淆的Windows应用程序都会加载user32.dll。 系统”。 coreel32.dll是每个 Windows应用程序加载的另一个重要的。 Windows非常酷,你只需要支付你实际使用的操作系统的部分费用。 并且这些DLL中的代码所需的内存由每个进程共享。 这在Windows NT必须以16 MB内存启动的日子里非常重要。

不需要单独的过程。

让这些不同的系统DLL实例一起工作是微软头痛的问题。 但这也是一个非常重要的策略,可以防止崩溃进程取消操作系统。

在文档中说系统是一种让你知道它没有被记录到确切的发生地点的方法,它可能会改变。 而不要让你的呼吸等待它。 系统一般是操作系统 [1],这不只是一个过程。 它由一大堆应用程序组成,这些应用程序在进程中使用动态库,在不同的深度级别相互通信,从较低级别的内核模式到较高级别的用户模式。 在所有这些地方,剪贴板被处理。

现在,请不要接受这个答案,而是等待汉斯。

[1]引用雷蒙德:“我不能相信我必须这样说。