这个程序的样式和qq msn雷同,都是左边导航右边显示实际内容现在我想在一个目录里存在动态链接库文件,这些文件里面包含程序的一些模块,比如象qq里 qq好友、移动硬盘,这些模块一样一个dll文件。问题是dll文件数不定,即模块不定。所以在主程序启动时想遍历这个目录,把目录下的所有dll加入到程序中,然后把内容显示出来。当然所有dll都遵守统一的调用协议,比如所有的dll里都有一个XName作为界面导航的名称,ShowForm作为显示子窗体的名称。但声明api时都必须指定调用过程名称,而且这个名称不能动态创建,不知有没其它什么方法?
解决方案 »
- 关于连接查询
- 求把英文的双引号替换成中文双引号的正则表达式
- frReport2.5 中设置主项数据后可以选择虚拟数据集并且可以设置显示的记录数,请问大家在程序中怎么用变量设置。
- 下面的代码怎么查不出适合条件的记录呢?
- D7中,表Column的可见控制失灵??????????????????
- BORLAND的答案我不满意:
- 高分请问各位高手,COM+的客户代理程序在WIN98下怎么安装?
- 急啊!!有那位高手用outlookbar控件啊?
- 如何动态将TClientDataSet的临时字段变成永久字段
- !!!!如何使DBGrid某列所有的内容显示为“*”,相当于Edit.PassWordChar功能!!!
- 获得服务器信息~~
- 求sum
var
prc: Pointer;
x, n: Integer;
p: Pointer;
dllh: THandle;
begin
dllh := GetModuleHandle(PChar(Dll));
if dllh = 0 then begin
dllh := LoadLibrary(PChar(Dll));
end;
if dllh <> 0 then begin
prc := GetProcAddress(dllh, PChar(Name));
if Assigned(prc) then begin
n := High(Parameters);
if n > -1 then begin
x := n;
repeat
p := Parameters[x];
asm
PUSH p
end;
Dec(x);
until x = -1;
end;
asm
CALL prc
end;
if HasResult then begin
asm
MOV p, EAX
end;
Returned := Cardinal(p);
end else begin
Returned := 0;
end;
end else begin
Returned := 0;
end;
Result := Assigned(prc);
end else begin
Result := false;
end;
end;