编译visual studio c#应用程序时,将生成PE和EXE文件。 那么PE和EXE文件有什么主要区别? 据我所知PE文件包含
PE/COFF Headers,
CLR Headers,
CLR Data,
Meta Data,
IL code,
.data,.text...
比exe包含的?.HEP与EXE有何不同?
答案 0 :(得分:4)
可移植可执行文件( PE )是包含操作系统正确加载可执行代码的所有必要信息的文件( .exe , .dll ,...)
这可能包括linking的动态库引用,资源管理,TLS数据等。
然而,可执行文件( .exe )是表示计算机程序上主要执行点的文件,即用C#术语表示的文件,包含 Main 功能或入口点。
答案 1 :(得分:2)
因此,PE
代表Portable Executable,它是Windows 32位和64位环境中可执行二进制文件的格式文件。
据我了解,生成的PE
文件中的信息包括:
但是,IL代码将位于EXE
文件中,因为它应该是独立于平台的,并且在运行应用程序(Just-in time-compiler
)时将编译为本机代码。 PE
部分还负责CLR的初始化。
请注意,PE
部分可以在可执行文件中,这在大多数应用程序中更有意义。
答案 2 :(得分:1)
.exe文件是PE文件的子集,而PE文件包括.exe,.dll和.ocx文件。