据我所知,需要输入/输出功能的应用程序必须与Kernel32.dll通信,而Kernel32.dll又将请求发送到内核本身。但是在.NET中,与任何其他应用程序一样,位于mscorlib.dll中的控制台类不直接与内核通信,对吗? mscorlib.dll是否必须将其请求发送到Kernel32.dll,或者.NET是否有特权绕过它?
有没有人知道它是如何运作的?
谢谢。
答案 0 :(得分:1)
.net it self是一个调用底层系统调用的本机应用程序。因此,当您调用console.writeline时,您正在调用writeconsole生效的包装器。
答案 1 :(得分:1)
所有.NET库都调用本机Win32 API,包括在三个着名库kernel32.dll
,user32.dll
和gdi32.dll
中找到的API,以便让事情发生。这几乎是在Windows上完成工作的唯一方法。 .NET Framework是一个基于Windows的简单运行时环境,尽管非常彻底的环境。
mscorlib.dll
提供的功能在这里也不例外。它确实调用了本机Win32 API函数,包括kernel32.dll
中的函数。