1、我不认为有什么缺点,可能总的程序大小大一些。怎样调用都可以,但建议用隐式调用
2、数据放在主程序较好。共享一个TDATABASE没问题,看你有什么目的。
3、可以,可以只定义一个变量指针,然后从主程序接受参数。
粗浅之见,、供参考。
2、数据放在主程序较好。共享一个TDATABASE没问题,看你有什么目的。
3、可以,可以只定义一个变量指针,然后从主程序接受参数。
粗浅之见,、供参考。
解决方案 »
- 关于用DELPHI运行一个DOS命令
- 分析网络入侵检测系统安全,推荐一片好文章
- 那些ie地址栏插件如3721,中文域名,都应该使用了ie的beforeNavigate2事件,那同时装的话谁起作用呢?
- 文件夹拷贝
- 远程主机强迫关闭了一个现有的连接
- 在DELPHI 5 里,是怎样读写XML的,谁用过,帮忙指点一二
- delphi7怎样怎样制作在线升级??
- 会不会出《DELPHI6开发人员指南》?
- 关于delphi开发一个类的问题
- !!!!!!!!!!我真的不知道该怎么办了!
- 用delphi 的tquery 控件可以执行sql server 生成的sql文件吗?
- 请各位老师帮我解决coolbar设置两段高度的问题谢谢,
2、应该共享一个TDatabase,最好另外开一个模块来做这个功能,这样对于将来的修改比较好,也容易。
3、应该可以的,和wxz说的应该差不多。
我觉得你在做的时候要考虑一下将来的维护和升级的可能性和方便性。
如:你想把实现SOMEFUNCTION的SOMEFORM做进DLL,那么封装成只输出一个ShowSomeForm的Dll,
而不要在主程序中使用诸如SomeForm.****的方式。在主程序使用TDataMoudle,功能模块引用主程序的TDataMoudle的方式不太好,比较混乱。应该将TDataMoudle封装成功能模块,供各单元引用。尽量将TDataMoudle封装完善,各单元不需要知道DataBase细节最好。
涉及数据源的模块放进程序包中,可以直接共享主程序的数据源,程序包可以与主程序共享全局变量。
只有真正具有独立性的模块才去考虑DLL。
我是想将软件分解成多个DLL, 这样当修改子功能时,不必重新发布整个应用软件。
请问一下,这种程序包的开发形式,是否也可以生成多个文件使得程序修改相当方便。
请问这样封装DataMoudle ,能否给一个Demo?
能列举一些好的参考书吗?
我在看“DELPHI5开发人员指南”中的程序包的概念,看的头晕脑胀;你能给我一些DEMO吗?
#define HHCOMMBPLH
//---------------------------------------------------------------------------
#include <db.hpp>
#include <systdate.h>
#include <Sysutils.hpp>
#include <vcl.h>
#include <windows.h>
#include <dbtables.HPP>
#include <db.HPP>
//---------------------------------------------------------------------------
#include "UNIT_DATACOPY.h"
//---------------------------------------------------------------------------extern __declspec(package) void DataCopyTo(TDataSet *DS);
extern __declspec(package) bool SaveToTXT(TDataSet *tds1, int StrType, AnsiString FileName);
extern __declspec(package) bool CopyToCrop(TDataSet *tds1,int StrType,TForm *PForm);
extern __declspec(package) bool SaveToXSL(TDataSet *tds1, bool ToFile, AnsiString FileName);//---------------------------------------------------------------------------
#endif这个头文件中对函数(以及全局变量)的说明与DLL有点不同:在生成BPL的项目和使用BPL的项目中,对函数的说明是一样的(没有DLL的import和export的区别).在你的CPP文件中包含这个H文件。函数的定义处也要有 __declspec(package) 说明。而且,要在 #pragma package(smart_init) 的下面。编译成BPL BPI后,把BPI拷贝到cb\bin 或 windows\system 下。在你使用这个包的项目的option中,加入这个包。在使用相关函数的文件中包含这个包的H文件。
1。函数的说明:在生成BPL的项目和使用BPL的项目中,对函数的说明是一样的。
2。使用:静态连接的DLL要把LIB文件加到项目中。包的使用是在项目的Option中指定。