General Assembly Structure
You might take it for granted that the assemblies produced by the .NET Framework exist side by side with executables and DLLs that are produced by unmanaged tools (such as VC++ 6.0). When you think about the metadata that is contained in an assembly as well as the whole .NET Managed Runtime, you might wonder how this is accomplished. You don't have to run a .NET executable assembly with something such as clr hello.exe. You can just run the executable and magic happens. The executable automatically starts up in a managed environment. How is this accomplished?
The reason that unmanaged code can seamlessly coexist with managed code or .NET assemblies is because of the flexibility that is built into the Portable Executable ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access