- •МОДЕЛЬ ВЫПОЛНЕНИЯ КОДА В СРЕДЕ CLR
- •Каждая создаваемая сборка представляет собой либо исполняемое приложение, либо библиотеку DLL, содержащую набор
- •Если сборка содержит только управляемый код с контролем типов, она должна одинаково хорошо
- •Значениепарам
- •После анализа заголовка ЕХЕ-файла для выяснения того, какой процесс необходимо запустить - 32,
- •управляемые модули содержат метаданные и программный код, написанный на языке IL
- •ИСПОЛНЕНИЕ КОДА СБОРКИ
- •ИСПОЛНЕНИЕ КОДА СБОРКИ
МОДЕЛЬ ВЫПОЛНЕНИЯ КОДА В СРЕДЕ CLR
Каждая создаваемая сборка представляет собой либо исполняемое приложение, либо библиотеку DLL, содержащую набор типов (компонентов) для использования в исполняемом приложении
ЗАГРУЗКА CLR
Если сборка содержит только управляемый код с контролем типов, она должна одинаково хорошо работать на обеих версиях системы.
В зависимости от указанной целевой платформы С# генерирует заголовок - РЕ32 или РЕ32+, а также указывает требуемую процессорную архитектуру (или информирует о независимости от архитектуры) в заголовке.
ОСОБЕННОСТИ 32- И 64-РАЗРЯДНЫХ ВЕРСИЙ ОПЕРАЦИОННОЙ СИСТЕМЫ
Значениепарам |
Типвыходноrо |
|
|
|
управляемоrо |
x86 Windows |
x64 Windows |
IA64 Windows |
|
етра/platform |
модуля |
|||
anycpu (по |
РЕ32/независимы |
Выполняется как |
Выполняется как |
Выполняется как |
32-разрядное |
64-разрядное |
32-разрядное |
||
умолчанию) |
й от платформы |
приложение |
приложение |
приложение |
|
|
Выполняется как |
Выполняется |
Выполняется |
|
|
какWoW64- |
какWoW64- |
|
x86 |
РЕ32/х86 |
32-разрядное |
разрядное |
разрядное |
приложение |
приложение |
приложение |
||
|
|
|
Выполняется как |
|
x64 |
РЕ32+/х64 |
Невыполняется |
64-разрядное |
Невыполняется |
приложение |
||||
|
|
|
|
Выполняется как |
Itanium |
РЕ32+/Itanium |
Невыполняется |
Невыполняется |
64-разрядное |
приложение |
ОСОБЕННОСТИ 32- И 64-РАЗРЯДНЫХ ВЕРСИЙ ОПЕРАЦИОННОЙ СИСТЕМЫ
После анализа заголовка ЕХЕ-файла для выяснения того, какой процесс необходимо запустить - 32, 64-разрядный или WoW64, - Windows загружает в адресное пространство процесса соответствующую (х86, х64 или IA64) версию библиотеки MSCorEE.dll.
Далее основной поток вызывает определенный в библиотеке MSCorEE.dll метод, который инициализирует CLR, загружает сборку ЕХЕ, а затем вызывает ее метод Main, в котором содержится точка входа. На этом процедура запуска управляемого приложения считается завершенной
ОСОБЕННОСТИ 32- И 64-РАЗРЯДНЫХ ВЕРСИЙ ОПЕРАЦИОННОЙ СИСТЕМЫ
управляемые модули содержат метаданные и программный код, написанный на языке IL
ИСПОЛНЕНИЕ КОДА СБОРКИ