2011-07-31 60 views
3

一邊唸叨MSDN中的剪貼板我碰到這條線進來:誰是剪貼板的系統所有者?

內存對象被放置在剪貼板上之後,該 內存句柄的所有權被轉移到系統。當剪貼板 清空存儲器對象具有以下剪貼板 格式之一,所述系統通過調用 指定功能釋放內存對象:... (http://msdn.microsoft.com/en -us/library/ms649014%28VS.85%29.aspx - 內存和剪貼板部分)。

我不太明白是「誰是系統」?一個SYSTEM進程?剪貼板所有者的過程?

感謝您的幫助! :-)

+2

基本上,它的意思是「不是你」。 – SLaks

+2

將「操作」放在它的前面。 –

+0

@Hans有正確的答案,但如果有人在答案中寫下來,它看起來就像是盜竊。來吧漢斯,把它寫成答案。當然,SLaks的評論也是正確的。 –

回答

3

你是什麼意思「操作系統」?沒有「操作系統」過程。哪個進程實際上釋放了該對象?

嗯,還有就是,該過程被稱爲 「系統」。但這與此無關,每個使用剪貼板混淆的Windows應用程序都會加載user32.dll。系統」。 Kernel32.dll是每隔 Windows應用程序加載的另一個重要因素。 Windows非常酷,你只需支付你實際使用的操作系統的部分費用。並且這些DLL中的代碼所需的內存由每個進程共享。這在Windows NT不得不使用16 MB內存啓動的時代非常重要。

沒有單獨的過程是必需的。

獲取系統DLL的這些不同的情況下一起工作是微軟的頭痛。但它也是一個非常重要的策略,可以防止崩潰進程通過它取消操作系統。

2

說出系統在文檔中是讓你知道它沒有被記錄到確切發生的地方,它可能會改變。並且不要讓你的呼吸等待它。系統一般是操作系統 [1],它不只是一個過程。它包含了一個巨大的應用程序,它們在進程中使用動態庫,並以不同的深度級別相互通信,範圍從較低級別的內核模式到較高級別的用戶模式。在所有這些地方,剪貼板被處理。

現在,請不要接受這個答案,但等待漢斯。

[1]引用雷蒙德陳:「我無法相信,我不得不說」

相關問題