深入理解Win32可移植可执行文件格式(PE)

4星 · 超过85%的资源 需积分: 0 2 下载量 28 浏览量 更新于2024-07-26 收藏 406KB PDF 举报
"这篇文章主要探讨了PE文件内幕,即Win32可移植可执行文件格式。作者Matt Pietrek指出,虽然研究可执行文件格式不是所有程序员的首要任务,但了解PE格式能帮助开发者理解Win32系统的工作原理。PE文件格式在Microsoft的多个操作系统上,如Windows NT、Win32s、Windows 95以及未来的Windows 2000中起着关键作用。 文章提到,无论是使用Win32s还是Windows NT,甚至在16位Windows环境下用Visual C++编写32位MS-DOS扩展程序,开发人员都在与PE文件打交道。作者不打算深入到PE文件的底层十六进制细节,而是专注于解释文件格式如何与日常编程工作相关联。他以`__declspec(thread)`关键字为例,说明了PE文件如何优雅地处理线程局部变量。 此外,文章还对比了Win32的PE文件格式与16位Windows的NE文件格式,帮助那些从16位环境转向Win32的开发者理解新格式的结构变化。尽管微软的新的OBJ目标文件格式缺乏官方文档,作者也尝试解析并分享了其中的部分内容,因为OBJ文件格式与PE文件格式有密切联系。 文章还揭示了Windows NT的设计背景,其继承了VAX VMS和UNIX的某些特性,而Windows NT的许多开发者都有在这些平台上工作的经验。这为理解PE文件格式的设计提供了历史和哲学的视角。" 在这篇文章中,读者将学习到: 1. PE文件格式的重要性,它是Microsoft Win32系统的基础。 2. PE文件如何处理线程局部变量,展示了PE格式的灵活性。 3. PE文件格式与16位NE文件格式的区别,有助于16位到32位过渡的理解。 4. 新的OBJ目标文件格式与PE文件格式的关联,尽管其文档稀缺。 5. Windows NT设计的历史背景,及其对PE文件格式的影响。 通过这些内容,开发者可以更深入地理解Win32系统的工作机制,以及如何有效地利用PE文件格式进行程序开发。