可执行文件开发过程
在DOS环境中,生成可执行文件的过程相对简单,首先使用编译器将源程序转化为obj文件,接着用链接器链接为exe文件。不同编程语言的开发步骤大体一致。
DOS可执行文件的内容来源于源程序中的代码和数据,但带覆盖部分的exe文件是个例外。它在基本exe文件后面附加了自定义数据,这部分由文件头偏移0002h和0004h处的长度定义,覆盖部分即从这部分到文件实际长度。即使文件大小超出640KB,DOS系统仍能运行,因为它只加载可执行部分,其余数据由程序自行读取。自解压软件采用这种结构,执行部分是解包代码,覆盖部分是压缩数据,格式由程序员自行定义。
对比之下,Win32可执行文件,即PE文件,结构与DOS文件大相径庭。它将程序分割为多个节区,包括资源节区,如菜单、对话框等。虽然可以类比为DOS的覆盖部分,但Win32资源是固定格式的组成部分,开发流程中多了创建资源文件的步骤。使用MASM32软件包,开发过程包含编写代码和创建资源两部分。
代码部分与DOS下编写类似,程序员使用文本编辑器编写汇编源代码,用include语句包含头文件,如Windows.inc,它定义了Win32 API中的参数和数据结构。汇编源代码经过编译器编译成obj文件。
资源文件,扩展名为rc,记录了对话框、菜单、字符串等资源,是资源脚本文件,由资源编译器编译成.res文件。资源脚本中使用预定义值,软件包提供资源头文件便于引用。资源文件中,不同类型资源的记录方式各异,如对话框定义大小和位置,而图形资源则是实际像素组成。
完成目标文件obj和资源文件res的编译后,最后通过链接器将它们合并为可执行文件。在DOS环境下,使用的是静态库,包含编译好的代码;而在Win32中,大多数公用函数在DLL中,以动态链接方式调用,链接器仅需位置信息,生成的库文件为导入库。
扩展资料
可执行文件 (executable file) ,可移植可执行 (PE) 文件格式的文件,它可以加载到内存中,并由操作系统加载程序执行。它可以是 .exe文件 .sys文件 .com文件等。
软件的定义是什么?有哪些主要特点?简述软件开发过程需要哪些阶段?并说...
软件定义阐释:**软件是指由计算机程序、相关文档以及运行所需的数据构成的集合。它涵盖了程序的源代码、可执行文件和用户手册等。软件是计算机系统不可或缺的部分,它通过执行特定任务来满足用户需求。**软件的核心特性:**1. 抽象性:软件抽象出硬件的复杂性,使用户和开发者能够专注于解决问题而非硬件...
c语言编程怎样运行程序?
运行程序步骤:1.编辑:输入源程序并存盘(.C)2.编译:将源程序翻译为目标文件(.OBJ)3.链接:将目标文件生成可执行文件( .EXE)4.运行:执行.EXE文件,得到运行结果。上机1 C语言简单程序的编写和调试
可执行文件是什么意思?
可执行文件是指在计算机或其它类比设备上可以直接运行的文件,通常是二进制文件或字节码文件。操作系统可以直接执行它,而无需进一步编译或解释。可执行文件通常是一些特定的应用程序,如文本编辑器、计算器、浏览器等等。对于开发者来说,将代码编译成可执行文件是非常重要的一步。通过这个过程,程序员可以...
简述开发一个c语言程序的步骤是什么样的?
2 编译。将编写好的代码,通过编译工具,转换为目标文件。此步中,会对文件内部及包含的头文件进行语法语义的分析检查。如果出错,则必须返回到一步对代码进行修改,直到没有错误为止。3 链接。将目标文件链接成可执行文件。此步会对文件直接的关联进行检查。如果出错需要返回到1修改代码。直到没有错误。...
[C语言] 运行C程序的步骤?
(4)运行可执行程序,得到运行结果。以上过程如图1.2所示。其中实线表示操作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件f.c输入,经过编译源程序,找出问题,修改源程序,并重新编译,直到无错为止。有时编译过程未发现错误,能生成可执行程序,但是...
...py文件在开发环境中时,如何操作可以保证运行当前面对自己的..._百...
解释器文件的执行当执行(exec)解释器文件时,exec系统调用会识别这种文件,内核使调用exec函数的进程实际执行的并不是该解释器文件,而是pathname指定的解释器。g.将输出重定向printf到read.py使用运算符调用的文件。由于read.py尚不存在,因此已创建文件。运行上面的代码后,我们可以catread.py在命令行中键入...
PyCharm脚本怎样执行
PyCharm作为专业级别的Python编辑器,帮助用户进行调试、语法高亮、代码跳转、智能提示等过程,还能够运行脚本文件,加快编程开发过程,下面就跟小编来了解下吧。执行脚本:1、首先进入PyCharm之后,我们点击“File”文件菜单。2、会有下拉菜单展示出来,我们点击“Settings”设置按钮。3、点击设置按钮之后我们会...
如何将一个c++语言变成可执行程序?产生的各类文件的扩展名是什么?_百 ...
编译->链接->生成可执行文件 扩展名是.EXE 目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。
我们编写的python代码在运行过程中,会被编译成
会被编译成二进制代码。一个程序,从编写完代码,到被计算机运行,总共需要经历以下四步,编译。编译器会将程序源代码编译成汇编代码。汇编。汇编器会将汇编代码文件翻译成为二进制的机器码。链接。链接器会将一个个目标文件和库文件链接在一起,成为一个完整的可执行程序。载入。加载器会将可执行文件的...
python文件如何生成可执行文件
先创建一个 app 目录,在该目录下创建一个 1233.py 文件,文件中包含如下代码:for looper in [1,2,3,4,5]:print(looper)接下来使用命令行工具进入到此 app 目录下,执行如下命令:pyinstaller -F 1233.py 执行上面命令,将看到详细的生成过程。当生成完成后,将会在此 app 目录下看到多了一个...
夷怖藿龙: 翻译C代码成汇编代码 : 解释 汇编代码再翻译成机器码:编译 生成二进制文件: 链接和生成
盐城市18024113181: 可执行程序制作是怎么做出来的,或是用什么软件制 - ?
夷怖藿龙: 你需要选择一门编程语言,然后使用该语言对应的IDE编译生成可执行文件.以最常使用的Windows操作系统为例 这里选用的IDE为Visual Studio(常用语言为C++,VB,C#) 然后新建一个项目工程 完成开发工作后,使用ctrl+shift+B重构工程.之后你就可以在工程目录下的debug(或release)目录下找到你需要的可执行文件了
盐城市18024113181: 可执行文件(.exe)是怎么做出来的呀? - ?
夷怖藿龙: 一般都是通过编译器,每一种开发工具都有自己的编译器,你写好的程序通过它来编译连接生成exe文件,如果你够水平的话,可以直接用2进制写,在debug下面就汇编成exe文件,不过那不是一般人所能做的
盐城市18024113181: 一个可执行文件是怎么来的 - ?
夷怖藿龙: 从OS层说起吧.OS都有加载程序的功能,一个可执行文件(比如exe,com等)内部都是机器指令(cpu相关的)和数据,所以可执行文件和OS以及编译器是密切相关的,不同的OS下不同的编译器产生的可执行文件都不尽相同.不同...
盐城市18024113181: C语言开发步骤 - ?
夷怖藿龙: 首先,在一个IDE(集成开发环境)中编写C代码, 编译,形成***.o目标文件,最后链接形成计算机能读懂的可执行的二进制代码 有两种编译模式 Debug 和 Release在Debug下是调试,生成的EXE不能在没有编译器的机器上运行,Release下释放,生成的EXE在其他机器上可以运行,就是我们常见的那种可执行文件
盐城市18024113181: 一个软件从源代码到可执行程序,需要经历几个步骤的 - ?
夷怖藿龙: 一般经过编译程序编译后就可以直接执行了.编译程序一般有两种执行方式:一种是边解释边执行,一次将一条指令通过编译程序编译成机器代码后执行,然后再编译下一条...
盐城市18024113181: 如何:生成和执行 Visual C# 应用程序 - ?
夷怖藿龙: 操作就是如此简单.当然,幕后会发生许多操作.必须将 C# 程序编译为所有 .NET Framework 语言都能够理解的中间格式(如 Microsoft 中间语言或 MSIL),才能执行该 C# 程序.有关 MSIL 的更多信息,请参见 C# 和 .NET Framework.当按...
盐城市18024113181: vc++ 如何生成可执行文件 - ?
夷怖藿龙: 在vc的开发环境下,在工具栏处有个感叹号一样的按钮,那个就是编译生成的操作按钮,点击就可以生成可执行文件了,并保存在你的项目文件夹目录中.
盐城市18024113181: C/C++程序编译步骤以及如何生成可执行文件 - ?
夷怖藿龙: C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 1.编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理. 伪指令主要包括以下四个方面 (1)宏定义指令,如# define Name TokenString,...
盐城市18024113181: 汇编编译器的工作和生成可执行文件的执行过程是怎样的? - ?
夷怖藿龙: 首先,目测你把事情想复杂了.1. 伪指令就相当于关键字,在读取源文件后就将所有语句拆分为许多个token,然后根据伪指令来处理这些token,比如是语法错误,token的类型(如参数,标志符等)...2. 可执行文件的加载另外找份说PE的书看就知道了,我自己也说不完.一个物理段最大是64kb,若可能会尽量连续第加载在一起,但内存中连续空间一般没那么大空间,就需要各种分配内存的手段来硬塞进去,包括分页.3. CPU不需要区分数据和代码,只要执行到的位置一概视为代码,若此字节码未定义指令,则产生#UD错误.区分数据和代码是程序员的工作.