Разница между файлами .exe и .pe?

При компиляции приложений Visual Studio C# будут генерироваться файлы PE и EXE. Итак, в чем основное различие между PE и EXE файлом? Насколько я знаю, файл PE содержит

PE/COFF Headers,
CLR Headers,
CLR Data,
Meta Data,
IL code,
.data,.text...

что содержит exe? Чем PE отличается от EXE?


person Karthikeyan    schedule 17.11.2015    source источник


Ответы (3)


Переносимые исполняемые файлы (PE) – это файлы, содержащие всю информацию, необходимую операционной системе для правильной загрузки исполняемого кода (.exe, .dll, ...)

Сюда могут входить ссылки на динамические библиотеки для связывания, управления ресурсами, TLS, среди прочего.

Однако Исполняемые файлы (.exe) — это файлы, обозначающие основную точку выполнения компьютерной программы, то есть, говоря языком C#, файл, содержащий < strong>Главная функция или точка входа.

person Matias Cicero    schedule 17.11.2015

Файлы .exe являются подмножеством файлов PE, а файлы PE включают файлы .exe, .dll и .ocx.

person Daniel    schedule 25.09.2017

Таким образом, PE означает переносимый исполняемый файл, который представляет собой формат файла для исполняемых двоичных файлов в 32-разрядных и 64-разрядных средах Windows.

Насколько я понимаю, информация внутри сгенерированного PEfile будет состоять из:

  • Заголовки
  • Метаданные
  • Сегменты данных CLR

Однако IL-код будет находиться внутри файла EXE, поскольку предполагается, что он не зависит от платформы и будет скомпилирован в собственный код при запуске приложения (Just-in time-compiler). Раздел PE также отвечает за инициализацию среды CLR.

Имейте в виду, что раздел PE может находиться внутри исполняемого файла, что имеет смысл в большинстве приложений.

person gustavodidomenico    schedule 17.11.2015