[CLR via C#]1.3 加载公共语言运行时

时间:2021-08-01 14:43:52

原文:[CLR via C#]1.3 加载公共语言运行时

1. 你生成的每个程序集可以是EXE,也可以是DLL。最终都是有CLR管理这些程序集中代码的执行。

2. VS2010中,创建新的EXE项目时,默认平台是x86,而不是anycpu。
3. Windows的64位版本提供了一个名为WoW64(Windows on Windows64)的技术,允许允许32位的Windows程序。这是因为这个技术能模拟x86的指令集,但这样会显著影响性能。
4. 编译目标平台对生成的模型的影响以及运行时的影响。[CLR via C#]1.3 加载公共语言运行时
[CLR via C#]1.3 加载公共语言运行时
5. Windows检查好EXE文件头,决定创建32位、64位还是WoW64进程之后,会在进程的地址空间中加载MSCorEE.dll的x86,x64或IA64版本。然后,进行的主线程调用MSCorEE.dll中定义的一个方法。这个方法初始化CLR,加载EXE程序集,然后调用其入口方法(Main)。最后,托管的应用程序将启用并运行。
6.如果非托管程序调用LoadLibrary来加载一个托管程序集,Windows会自动并初始化CLR(如果尚未加载的话),以便处理程序集中的代码。