delphi做插件框架软件开发
有这方面经验的朋友请指导一下,谢谢
[解决办法]
是自己的系统里的插件机制?
还是一个现成的支持插件的系统,使用delphi开发它的插件?
[解决办法]
支持插件的系统,好像有几个人在介绍了
另外,一个exe也没什么不好啊,加上自动update功能就行了
虽然update整个exe会慢一些,但是局域网或adsl,应该还是很快的了
[解决办法]
有同样的想法,期待中!
[解决办法]
JVCL有插件的源码,可以参考
[解决办法]
一个终极框架是:解释性delphi
一个通用的解释器(客户端)自动从服务器下载 pas/dfm的加密包,在本地解压到内存里直接解释执行
pas/dfm可以通过delphi的免费版进行开发,测试完毕在自动分发(压缩加密)到服务器
[解决办法]
[解决办法]
学什么都要深究呢,才发现Delphi自己学的都是皮还是皮。帮顶~
[解决办法]
同问,大家给点意见
[解决办法]
现在还有弄delphi的学习ing……
[解决办法]
评论 有加积分吗
[解决办法]
haode ,jiejianle 1
[解决办法]
等高人~~~~
[解决办法]
Exe+dll+bpl插件开发
[解决办法]
一般用bpl哦
[解决办法]
Hydra for Delphi控件的SimpleVisual例子就是dll插件的,以前看过,记得不大清楚了
[解决办法]
不错哦!!!!!!
[解决办法]
learnning...
[解决办法]
难得csdn有delphi首页置顶的贴子,顶一下.
[解决办法]
有同样的想法,期待中!
[解决办法]
我以前工作的一家公司开发医疗软件,开发工具就是dephi,架构是主调程序(exe)+pbl(一些公共的函数)+dll(业务模块),将pbl路径放在环境变量中,dll的路径放在数据库中,主程序调用时,从数据库查找。
[解决办法]
找插件函数
procedure TFrmMISMain.LoadPlugin(Plugin, Proc: string; PChannel: Pointer; PUser: Pointer; MenuCode: Integer);
var
Path: string;
PluginHandle: THandle;
ProcAddr: FarProc;
PluginProc: procedure(AppHandle: THandle; PChannel: Pointer; PUser: Pointer; MenuCode: Integer); stdcall;
begin
PluginHandle := 0;
Plugin := LowerCase(Plugin);
if RightStr(Plugin, 4) <> '.dll' then Plugin := Plugin + '.dll';
Path := ExtractFilePath(Application.ExeName) + Plugin;
try
try
if not FileExists(Path) then raise Exception.Create('缺少' + Plugin + '文件!');
PluginHandle := LoadLibrary(pchar(Plugin));
if PluginHandle = 0 then raise Exception.Create('不是合法的' + Plugin + '文件!');
ProcAddr := GetProcAddress(PluginHandle, pchar(Proc));
if ProcAddr = nil then raise Exception.Create(Plugin + '文件不存在' + Proc + '接口函数!');
PluginProc := ProcAddr;
PluginProc(Application.Handle, PChannel, PUser, MenuCode);
FreeLibrary(PluginHandle);
except
on E: Exception do sysErrordlg(E.Message);
end;
finally
FreeLibrary(PluginHandle);
end;
end;
[解决办法]
我们的程序框架是:exe + bpl + dll
主窗体Exe
公用代码bpl
子模块dll
一般子模块不需要向主窗体传递太多的东西,需要的话可以向主窗体SendMessage。加载子模块的dll时把主窗体、全局变量的指针传进去就可以了。
[解决办法]
但愿如实
[解决办法]
什么方式比较好呢
[解决办法]
完全同意用dll接口的方式