如果我使用System.Windows.Forms.MessageBox類的show函數繪製消息框,會彈出一個窗口。我想知道繪製這個窗口的實際代碼在哪裏?它在一些Win32 API或user32.dll等?通過反射器,我無法看到Show方法的定義。.NET框架代碼調用何處繪製窗口(本機C++)?
另外,.NET是win32 api的包裝呢?我知道,當我們編譯.net代碼時,它會生成IL,在運行時轉換爲CPU特定指令,然後我們的CPU執行這些指令。但是我有一種感覺,Windows操作系統中有一些常見的代碼負責繪製一個窗口(或從文本文件中讀取等)。所有這些語言如C++,F#,C#,Java等最終都會在框架內調用該代碼。但是,我該如何去尋找並驗證它?
例如:在MFC或Win32中我們調用的一個函數在屏幕上繪製一個窗口,MessageBox.Show也調用相同的函數,但是它的抽象出來了嗎?
然後另一方面我們可以在兩種語言之間進行互操作。
所以我很困惑這裏。此外,我現在通過C#閱讀CLR,因此我的大腦處於超級興奮狀態:-)
爲什麼它在哪裏實施? (它很可能只是調用'MessageBox' API) –
雖然有趣,但這似乎並不是我的主題。您問的是Microsoft如何實現功能,而不是如何編寫任何代碼。 – David
查找併購買Charles Petzold的WinAPI聖經!答案在那裏Neo! – t0mm13b