У меня есть несколько вопросов о порядке инициализации для CLR и CRT для смешанных сборок .NET (т. Е. Имеется в виду смешанные управляемые / неуправляемые сборки C ++).
Так что, если у меня есть файл dll сборки смешанного режимаи загружается через Assembly.Load.Я заметил, что любые статические нативные объекты не будут инициализироваться или вызываться до тех пор, пока сначала не будет вызван некоторый управляемый код.ХОРОШО.Итак, я полагаю, что при запуске код CLR инициализируется первым, а инициализация CRT вызывается последним.Каков порядок отключения?Это первое выключение CRT, а последнее CLR?
Так вот как это происходит?
start of program lifetime
initilialize CLR
...initilialize CRT
...construct native static instances
... program runs....
...shutdown CLR
...destruct native static instances
shutdown CLR
end of program lifetime
Или это в каком-то другом порядке?
Мой вопростакже применяется к сборкам смешанного режима, которые являются исполняемыми файлами (то есть .exe).Это похоже?
start of program lifetime
initilialize CLR
...initilialize CRT
...construct native static instances
... program runs....
...shutdown CLR
...destruct native static instances
shutdown CLR
end of program lifetime