能否对函数名称加密解密调用呢? 能否对函数名称method1加密解密呢?我是想调用时,调用加密后函数名称,通过解密,来调用method1. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure a723fjfasdldldf;begin method1end;调用:a723fjfasdldldf; 解密后的函数名称为DCP_blowfish1.DecryptString('jLXOppOFoKY8Os1x'),解密后它变成string型,假设解密后变成method1怎样调用呢?vars:string;begins:=DCP_blowfish1.DecryptString('jLXOppOFoKY8Os1x');s;end;这样调用又不行 你这个method1是类的一个方法吗?形如procedure TForm1.method1这样?如果是的话可以调用MethodAddress取得函数地址! 单层不带参数可以,但如果method1带参数,且在三层的中间层里,客户端能调用吗?怎样写 那客户端得把函数名称传给中间层,然后中间层调MethodAddress吧? procedure callXX(string: 密匙);begin if (解密(密匙) = True) then method1;end; 不如加密参数,传入参数不正确就exit 首先你得类是要一个实例,当然如果有字符串。你可以使用GetClass来获得类,创建实例后,然后再使用ARunTime.MethodAddress( 'FUNNAME '),剩下的就可以了吧。如下。 TPLUGMETHOD = procedure(FunctionID: Integer; ExecData: Pointer) of object; ExecMethod: TMethod; //加载需要加载的接口 RunTimeClass:=GetClass(FInterFaceName); if not Assigned(RunTimeClass) then raise Exception.Create( '无效的注册类: '+ InterFaceName); ARunTime:=RunTimeClass.Create; PExecMethodAddr:=ARunTime.MethodAddress( 'ExecFunction '); if PExecMethodAddr = nil then raise Exception.Create( '无效的接口方法 '); ExecMethod.Data := ARunTime; ExecMethod.Code := PExecMethodAddr; //初始化接口 TPLUGMETHOD(ExecMethod)(0, nil); 这个应该可以满足你的要求... 参考http://topic.csdn.net/t/20051210/11/4450510.html 请教个imagelist 的问题! 多DLL窗体显示问题. 如何让TreeView变透明,或者有这种控件 使用QUERY1进行SQL查询 好久没有来Delphi了,散分散分 一个基本的问题,高手请进 (100分啊!!!)有没有讲解控件的属性和方法的电子书?在那有下载的? 用Remote Data Module 的一点疑惑 在DBComboBox中添加记录怎么做? *.ini文件 SetLength的用法问题 TCP通信问题
begin
method1
end;
调用:
a723fjfasdldldf;
假设解密后变成method1怎样调用呢?
var
s:string;
begin
s:=DCP_blowfish1.DecryptString('jLXOppOFoKY8Os1x');
s;
end;
这样调用又不行
如果是的话可以调用MethodAddress取得函数地址!
但如果method1带参数,且在三层的中间层里,客户端能调用吗?怎样写
begin
if (解密(密匙) = True) then method1;
end;
TPLUGMETHOD = procedure(FunctionID: Integer; ExecData: Pointer) of object;
ExecMethod: TMethod; //加载需要加载的接口
RunTimeClass:=GetClass(FInterFaceName);
if not Assigned(RunTimeClass) then
raise Exception.Create( '无效的注册类: '+ InterFaceName);
ARunTime:=RunTimeClass.Create;
PExecMethodAddr:=ARunTime.MethodAddress( 'ExecFunction ');
if PExecMethodAddr = nil then
raise Exception.Create( '无效的接口方法 '); ExecMethod.Data := ARunTime;
ExecMethod.Code := PExecMethodAddr;
//初始化接口
TPLUGMETHOD(ExecMethod)(0, nil);
这个应该可以满足你的要求... 参考http://topic.csdn.net/t/20051210/11/4450510.html