Ресурсы Windows PE (расширение предыдущего Q.)
Основываясь на ответе на мой предыдущий вопрос, я хотел бы задать еще один по этой теме.
До этой недели я считал, что вся графика за окнами на самом деле просто код. Чтобы создать окно, меню, кнопку, я думал, что все это просто функция, которая передает некоторые аргументы в ОС. Но потом я нашел немного информации о ресурсах. Из всего, что я нашел в Интернете, я считаю, что компилятор на самом деле ищет определенные функции, которые создают графику, и сохраняет их и их структуры данных в другом месте в файле PE, чем в другом коде.
То, что он обрабатывает их иначе, чем другой код. Я хочу спросить, почему? Я имею в виду, почему бы просто не иметь функции, которые для этого вызывают WinAPI? Благодарю.
РЕДАКТИРОВАТЬ: И как даже, например, компилятор C может разбить программу на ресурсы и другой код?
Я всегда предполагал, что любой компилятор C, даже для старого до Windows, мог генерировать соответствующий код для запуска в Windows, если он предоставлен кодом запуска функций CRT и WinMain. И только базовое знание структуры PE, просто разделы кода и данных....
1 ответ
Ресурсы - это просто данные. Данные не имеют никакой возможности оживить внешний вид окна. Это требует кода, который использует данные. Живет ли этот код в Windows или в вашей программе, не имеет значения. Это все еще код.
Итак, да, весь код выполняет свою работу. Вы делаете это правильно, если это код, который вам не нужно писать. И не нужно поддерживать.