1.CLR Introduction
Full Name: Common Language Runtime (when the common language is in progress)
Properties: a managed module
Working with objects: all languages that target the CLR (C #, Basic, IL ...). )
Core features: memory management, assembly loading, security, exception handling, thread synchronization
2. Relationship of source code to CLR
Components of a 3.CLR managed module
"PE32 or pe32+ head"
Standard Windows PE file header, similar to the "father-in-the-Common object File Format" (Format,coff) header. If the header is in PE32 format, the file can run on either the 32-bit or 64-bit version of Windows. If this header is in pe32+ format, the file can only be run on the 64-bit version of Windows. This header also identifies the file type, including the Gui,cui or DLL, and contains a time stamp to indicate when the file was generated. For modules that contain only IL code, most of the information in the PE32 (+) header is ignored. For modules that contain local CPU code, this header contains information about the local CPU code
"CLR Header"
Contains the information that this module becomes a managed module (which can be explained by the CLR and some utilities). The header contains the required CLR version, some flags, the METHODDEF metadata token (token) of the Managed Module entry method (Main method), and the location/size of the module's metadata, resources, strong names, some flags, and other less important data items
"Meta-data"
Each managed module contains a metadata table. There are two main types of tables: tables that describe the types and members defined in the source code, and tables that describe the types and members of source code references
"Il Code"
The code generated when the compiler compiles the code. At run time, the CLR compiles IL to the cost of the CPU instruction
The time is late, tomorrow continues ~
Read the Classics-"CLR via C #" (Jeffrey Richter) Notes _CLR