在DELPHI中如何将程序的部分功能与主程序体分开编译,我不要DLL或OCX之类的,要DELPHI自身的(100分)

  • 主题发起人 主题发起人 FlyKnight2
  • 开始时间 开始时间
F

FlyKnight2

Unregistered / Unconfirmed
GUEST, unregistred user!
不用DLL因为他不能用类。
有没有什么技术, 可以将部分程序与主体分开,在运行期再调用。

因为这样便于维护和系统升级。


 
那用多个窗体可以吧,需要时替换部分就可以了
 
哦,错了,是多个exe。
 
如果是多个EXE的话,我就不用找你们了!!! 
想想看,你的程序有多个部分或功能组成,但是其中有一部分常常会发生变动, 如果因为
一个部分而要重新编绎,而在DELPHI中它们都被编成一个EXE。
试想一下如果可以将这部分开的话,以后要更新只要改他就OK。
如果是DLL,不能用类,OCX太不稳定。。。
不知DELPHI中有没有类似于DLL
的东东。
 
做成控件
 
“dll 中不能用类” 你能把com对象放入dll中;
delphi中你可以使用分发包的方法,一个exe加多个运行包。将你的功能封装成控件,在编译时
生成运行包。当以后要系统升级时,只需分发新包。实际上,run-time packeges也是一种
动态连接库。
 
关于run-time packeges的技术有点了解,不过,用run-time packeges编译后,也会集成到

EXE中。run-time packeges编译后的是一个什么样的形式存在,以及与EXE文件有个关系。

还望详细说明其中细节!!
 
用多个exe吧。
但它也有问题,就是这个用户权限之类的,总不能每个exe都加上登陆框吧。
 
"不过,用run-time packeges编译后,也会集成到EXE中。"

当编译时可以控制,project options -〉packages-> runtime packages-〉build with runtime packages
使用该选项,你的exe会变得很小,delphi将不会把运行包集成到exe;
你可以尝试将你的控件、库放在你的包里,在编译时使用运行包。
运行包实际是特殊的dll,文件扩展名.DPL
 
可以为每一个模块都设置一个输入输出 接口;
调试好了,再把各个模块连接即可;
 
使用BPL,我们现在就是,有10多个BPL加一个EXE exe才600k,运行良好
 
做成VCL控件,编译生成*.bpl,编译选项中使用选中使用运行库选项。
 
DLL不能用类,可是可以把类封进函数呵
我的第一个DLL就是这样写的,里面包括了一个splash form,导出函数显示版标
我到现在一直在用它,调用的时候填进参数就可以了
 
谁说DLL不能用类,什么类都可以放进DLL,这可是DELPHI编译器的秘笈
 
就用package吧
 
zhuhuan:
Dll可以把类放进去?说详细点!
 
类放到DLL里的概念比较繁,简单来讲
1 对象实际上是一个指针,指向一张VMT,而VMT是后期才实现的,并非在编译前。
2 DLL存在于程序自己的进程空间内,就是说DLL 和主执行线程zai同一个4GB的内存,

具体实例见 DELPHI 2 Unleashed COM部分,有问题再联系
zhularry@netease.com
 
如果是用包的话:
我将包设成只在运行期后,我将程序重新编译后,再将BPL给DEL掉,可是程序还会运行,
我已将Build with runtime bpl 选中了,此时的程序只有20KB .请问关于这个问题.
使用包的话,在USES 部分定义的单元,DELPHI如何分开该单元是当前目录中的还是BPL
中的!总感觉无法区分了.

 
这样的情况bpl方案
真在学习中
不巧近来看高人讨论
 

Similar threads

回复
0
查看
863
不得闲
D
回复
0
查看
911
DelphiTeacher的专栏
D
D
回复
0
查看
868
DelphiTeacher的专栏
D
D
回复
0
查看
840
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部