src => managed module => assembly
.net managed module
a managed module is a standard 32-bit PE32 file or PE32+ file that required the CLR to execute.
one assembly can has several managed modules, but usually only one
Parts of Managed Module
PE32 or PE32+ Header
CLR header
Metadata (优点1:不需要头文件 2:IntelliSense 3:Refection 4:GC 5:type-safe)
IL code
loading the CLR
1.examing the EXE file's header
- 32-bit process
- 64-bit process
- WoW64 process
2. load MSCorEE.dll
3. call a method in MSCorEE.dll, (启动CLR,加载EXE Assembly, 调用main)
WoW64:为了32位在64位上能够运行
FCL : Framework Class Library
http://dotnetslackers.com/articles/net/Analyzing-the-makeup-of-a-managed-module.aspx