谢谢你的参与。 举个例子:
有一个菜单配置表:
菜单一 对应的函数 menu1();
菜单二 对应的函数 menu2();
.. ..
有一个编译好的dll调用此表,动态生成菜单项,而菜单对应的函数可能是后加的,即是另一个dll,在不需要重新编译生成菜单DLL的情况下、只要修改菜单表和实现的DLL即可完成工作。
有的用户水平很高,他们有能力改写具体实现的DLL,所以要实现这种功能了。 我记得C语言可以实现这种功能,具体忘了。好像用指针吧! 请大家多多帮忙。。
有一个菜单配置表:
菜单一 对应的函数 menu1();
菜单二 对应的函数 menu2();
.. ..
有一个编译好的dll调用此表,动态生成菜单项,而菜单对应的函数可能是后加的,即是另一个dll,在不需要重新编译生成菜单DLL的情况下、只要修改菜单表和实现的DLL即可完成工作。
有的用户水平很高,他们有能力改写具体实现的DLL,所以要实现这种功能了。 我记得C语言可以实现这种功能,具体忘了。好像用指针吧! 请大家多多帮忙。。
解决方案 »
- 关于DBXpress和TTransactionDesc
- delphi2010文本文件编码问题
- 【在线急等】如何遍历视图中的一条条记录?
- 如果SQL Server服务器未启动,如何编程实现启动?
- 如何在AdvStringGrid中为每个单元格内的字体定制颜色
- 新手上路,请多关照!
- 一个怪现象--有兴趣的进来看一下(10分)
- 如何利用sp_addlinkedserver将数据库中的数据导入excel中的问题,有谁能举个例子吗?谢谢
- .net Winform程序调用delphi编写的dll出错,求救!!
- ODAC连接Oracle数据库出错
- 统计:csdn上的delphi专区的人有多少?
- 有QQ2000的发送消息和接收消息的接口协议?400分
[Root]
Count=2Item1=菜单1
SubItem1=
Command1=Paint.exeItem2=菜单2
SubItem2=SubItem2
Command2=[SubItem2]
Count=1Item1=子菜单1
SubItem1=
Command1=NotePad.exe在程序中用递归的方式读取,并动态创建MenuItem
[email protected]
var
hLib: integer;
hrun:function(param1:type1;param2:type2...):rtntype;stdcall;//你的过程或函数的格式
begin
hlib:=loadlibrary(pchar('yourlib.dll'));
if hlib<>0 then
hrun:=GetProcAddress(win.hlib,'YourProcName');
if @hrun<>nil then hrun;
end;
然后 yourobject.onevent:=yourhandlefunction; 就行了,程序运行时也是可以随时更改的,很方便啊