编译后的。EXE文件是否集成了所有的。DPR,PAS等文件?(50分)

  • 主题发起人 主题发起人 acee
  • 开始时间 开始时间
A

acee

Unregistered / Unconfirmed
GUEST, unregistred user!
编译后的。EXE文件是否集成了所有的。DPR,PAS等文件?如果我引用了其它的。PAS 文件,重
新编译后,再将这个。PAS文件移到其它地方,这个。EXE文件依然能够运行,是不是在它的
。CFG文件内自动处理了?
 
编译过程中需要这些文件,一旦生成了exe文件,这些文件就不再需要了。

>>编译后,再将这个PAS文件移到其它地方,这个EXE文件依然能够运行
Yes. 但是你想再次编译的话就不行了——编译器会说找不到xx文件。
 
DELPHI跟其他语言不同的地方就是生成的文件一般情况只有一个EXE文件,不像VB等等一大堆
东东。编译后不需要其他的文件,但编译过程中得有类如:*.DFM,(窗体代码文件)*.PAS,(Pascal
单元的源代码)*.DPR(工程文件)
 
其实大家印证一下c语言中的编译过程与delphi是一样的.
delphi首先要把所有使用的.pas编译成.dcu文件(相当于c中从.c到.obj的编译),
然后把所有的.dcu连接成.exe文件(相当于c中从.obj到.exe的连接).
编译程序其中一般在我们自己的程序目录中会出现许多.dcu文件, 这是从我们自己
的.pas生成的; 还有些.dcu是不再我们的目录中的, 是那些windows.pas等delphi
自带单元的, 它们存放在%DelphiInstallPath%/Lib中, 是已安装就已经有的.
所以编译完成的delphi程序是不需要.pas和.dcu的, 如同用c开发的程序运行时不再
需要.c和.obj文件一样.
 
Delphi也需要其它的文件的比如:Vcl50等等,你觉得能够单独运行是因为机器上已经
装了Delphi的原因。
 
to zzWind:
其实刚才谈到的是编译源代码.在delphi中,还有特殊的机制:package,这是一些特殊的
dll. delphi中有运行时和设计时包. 对于其中的运行时包, 如果在project options
中选中Build with runtime packages, 那么我们的程序在运行时, path环境变量设定
的路径以及当前目录中必需要有vcl.dcp, rtl.dcp等运行时包, 视程序中
使用的控件而定(就像使用了动态库的其他开发工具生成的exe一样), 不然就要报错.
如果我们取消了Build with runtime packages选项, 细心的富翁可以看到我们编译出
的程序比刚才大了一圈, 这就是原来在runtime packages中的代码被编译到了程序中
(有些runtime packages不支持, 比如所有BDE控件使用的vcldb.dcp等).这时的程序
就可以脱离runtime package的束缚, 独立运行(不要使用数据库控件呦).
 
大家说的都很对!
 
当可以呀
要还Delphi自带的引用不就没得用了呀
 
多人接受答案了。
 
后退
顶部