Программа написана на C++.
Я так понимаю происходит следующее:
1.После двойного клика мышкой по исполняемому файлу происходит препроцессорная обработка.
2. Компиляция.
3. Компоновка
4. Загрузка программы в ОЗУ и её выполнение центральным процессорным устройством.
Я хочу узнать, происходят ли постоянно процессы 1-3 или в файле программы после компилирования сохраняются машинные кода и непосредственно выполняется процесс загрузки и выполнения?
Другие языки программирования и технологии
Что происходит при запуске экзешного файла?
Двойной клик.... Хм, ну, допустим, у на windows.
После двойного клика по файлу в проводнике.. .
1. Проводник вызывает системную функцию открытия файла.
2. Эта функция вызывает функцию создания процесса.
3. Последняя функция открывает .ехе файл, читает заголовок, выделяет оперативную память для процесса, загружает данные (в т. ч. машинный код) в память, загружает библиотеки, если они не были загружены, производит инициализацию и переходит к точке входа (адрес первой машинной команды) .
Для этого она вызывает кучу других функций.
После этого программа сама ответственна за своё выполнение до момента, пока не будет возврата в вызвавшую функцию или вызова команды ОС, предназначенной для завершения программы.
Если конечно это не .net.
компиляцию делает компилятор, компоновку - компоновщик.
После компоновщика выходит исполняемый файл, который запускается двойным щелчком в проводнике без всяких там компиляций.
После двойного клика по файлу в проводнике.. .
1. Проводник вызывает системную функцию открытия файла.
2. Эта функция вызывает функцию создания процесса.
3. Последняя функция открывает .ехе файл, читает заголовок, выделяет оперативную память для процесса, загружает данные (в т. ч. машинный код) в память, загружает библиотеки, если они не были загружены, производит инициализацию и переходит к точке входа (адрес первой машинной команды) .
Для этого она вызывает кучу других функций.
После этого программа сама ответственна за своё выполнение до момента, пока не будет возврата в вызвавшую функцию или вызова команды ОС, предназначенной для завершения программы.
Если конечно это не .net.
компиляцию делает компилятор, компоновку - компоновщик.
После компоновщика выходит исполняемый файл, который запускается двойным щелчком в проводнике без всяких там компиляций.
"при запуске экзешного файла" происходит описанное в пункте 4
вы не путайте товарищь! сборку проекта с запуском ЕХЕ файла, это очень разные вещи. и касательно второго происходит (исходя смысла вопроса) развертывание РЕ формата. почитайте об этом! а то что вы написали под пунктами 1-4 это к области получения ЕХЕ фала РЕ формата.
При клике на EXE файле происходит
4. Загрузка программы в ОЗУ и её выполнение центральным процессорным устройством.
1-3. Происходит на этапе компиляции, т. е. создается машинный код. И делается это единаразово для подготовки запускаемого файла. После этого ехе исполняется начиная с 4 этапа.
4. Загрузка программы в ОЗУ и её выполнение центральным процессорным устройством.
1-3. Происходит на этапе компиляции, т. е. создается машинный код. И делается это единаразово для подготовки запускаемого файла. После этого ехе исполняется начиная с 4 этапа.
все описанное происходит на стадии компиляции в exe, описанное больше на транслятор похоже но не на С++
Похожие вопросы
- bat-файл, как создать команду для запуска ярлыка
- Как запустить BAT файл при запуске картинки
- Dev cpp при попытке компиляции и запуска выдает ошибку - исходный файл не был скомпилирован.
- Работа с файлами в АССЕМБЛЕРЕ. Надо считывать файл, путь указывает пользователь при запуске программу. Помогите!
- интерактивный режим на ESET показывает в конфигурации, что файл какойто постаронний подключен. странное происходит. далее
- Ни как немогу Windows файлы запаковать(записать на DVD) в ISO чтоб при запуске компа он их узнал с диска
- Как написать прогу на паскале или С, чтобы при запуске этой проги она удаляла файл, например С://123.txt
- Как bat файл запустить от имени администратора? Какая команда служит для запуска от имени администратора? Ось Windows 7.
- Как файл exe при запуске превращается в форму с кнопками и встроенной логикой? Он же состоит по сути из нулей и единиц!!
- Отслеживаем запуск программы...?(Vb. net )