如果我使用 System.Windows.Forms.MessageBox 类的 show 函数来绘制消息框,则会弹出一个窗口。我想知道绘制这个窗口的实际代码在哪里?它在一些 Win32 API 或 user32.dll 等中吗?通过反射器我无法看到 Show 方法的定义。
另外,.NET 是 win32 api 的包装器吗?我知道,当我们编译 .net 代码时,它会生成 IL,在运行时将其转换为 CPU 特定指令,然后我们的 CPU 会执行这些指令。但我感觉 Windows 操作系统中有一些通用代码负责绘制窗口(或从文本文件读取等)。所有这些语言,如 C++、F#、C#、Java 等,最终都会从框架内调用该代码。但问题是我如何才能找到它并验证它?
例如:在 MFC 或 Win32 中,无论我们调用哪个函数在屏幕上绘制窗口,MessageBox.Show 也调用相同的函数,但它是从我们抽象出来的?
另一方面,我们可以在两种语言之间进行交互。
所以我在这里有点困惑。这些天我也在通过 C# 阅读 CLR,所以我的大脑处于超级兴奋状态:-)