因为框架的限制,有这样的需要:在A1工程中的A单元中定义一个全局方法,在B1工程中的B单元中回调A1工程中的A单元的这个方法以达到处理的目的。
大致代码如下:
调用之处需要用到的
CallYourName :=function(aParam:string):string;stdcall;
QueryName:CallYourName;
Name := QueryName(sName);//直接调用获得处理结果
A1 工程中的A.pas:
1. 在implementation上面声明 function CallQuery(aChar:string):string; stdcall (定义全局方法,以便编译器给此分配地址空间),
2. 接着在下面就写处理的实现步骤
function CallQuery(aChar:string):string; stdcall;
begin
... ...
end;
3.在A1工程的接口处写调用:
R_QueryName:
begin
Result := LongInt(@CallQuery); //Result::Variant; (传地址)
end
B1工程中
X.QueryName := CallYourName(Longint(Exec())); //必须的一步
按照上面的玩意,你也可以做出复杂漂亮的东东出来了。