delphi做插件框架软件开发
有这方面经验的朋友请指导一下,谢谢
[解决办法]
是自己的系统里的插件机制?
还是一个现成的支持插件的系统,使用delphi开发它的插件?
[解决办法]
支持插件的系统,好像有几个人在介绍了
另外,一个exe也没什么不好啊,加上自动update功能就行了
虽然update整个exe会慢一些,但是局域网或adsl,应该还是很快的了
[解决办法]
有同样的想法,期待中!
[解决办法]
JVCL有插件的源码,可以参考
[解决办法]
一个终极框架是:解释性delphi
一个通用的解释器(客户端)自动从服务器下载 pas/dfm的加密包,在本地解压到内存里直接解释执行
pas/dfm可以通过delphi的免费版进行开发,测试完毕在自动分发(压缩加密)到服务器
[解决办法]
[解决办法]
[解决办法]
learning.......
[解决办法]
有同样的想法,期待中!
[解决办法]
先看看
[解决办法]
有高手做过这样的东东吗?
[解决办法]
支持了,进来看看,帮你顶。
[解决办法]
期待中
[解决办法]
这方面的资料相对来说是少一些
[解决办法]
不会,支持,纯的
[解决办法]
你可以参考一下8jie软件,纯delphi 的软件,
还做了插件的定义。
甚至用户东delphi 的自己都可以写个插件,加到软件中去。
全名是:八戒桌面小工具
[解决办法]
插件神马的都是浮云
[解决办法]
一个exe也没什么不好啊,加上自动update功能就行了
虽然update整个exe会慢一些,但是局域网或adsl,应该还是很快的了
[解决办法]
丢个板砖[0] 引用 举报 管理 TOP
zhzhrony
(农妇,山泉,有点田)
等 级:
#3楼 得分:0回复于:2011-01-04 23:19:32
[解决办法]
look and look , and look again.
[解决办法]
It's so sorry! I'm confused!
[解决办法]
我目前正在做相关delphi插件。就是一个用delphi开发的CS应用程序配置平台。采用的是EXE+BPL+DLL.可以随心所欲的删除和插入插件而不用重新编译EXE程序。我们这个平台可以配置收银pos、OA、CRM都软件。任意功能都可以动态实现。目前国内做这方面比较专业的公司如:北京起步科技,雅奇理想科技、上海普元、北京方正SOA等。
[解决办法]
不太清楚·····
[解决办法]
是不是就是指的HY类似的框架啊?
remobject里面好像包含了!
[解决办法]
还有就是利用delphi 2010的反射机制,直接在本地操作服务器的对象,不过还没有仔细的研究过!感觉很强大!
[解决办法]
学什么都要深究呢,才发现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接口的方式