要求:不通过定义相同的函数指针类型执行它
解决方案 »
- rzpagecontrol 关闭页签时返回上一次的页签
- 如何让子类不继承父类或者祖先的"某些"特性?也就是“不完全”继承呢?
- TLabel 如何可选并拷贝 或者 Memo 背景如何透明。
- ACProtect注册版和未注册版有何不同?安全能力如何?那儿有注册版呢?
- 请问有无哪种label控件可以把字符做成艺术字体,我原来是在word中做好艺术字体,做成jpg文件,用image控件load该图片后,发现没法去掉白色
- 如何获取网页中的Jscript对象,并给它赋值?可以用WebBrowser控件实现吗?
- 插件是怎么作出来的?
- delphi用ado方式连接一有密码的access数据库,用户id应为什么,我试过'admin'和'管理员'都不对
- 初学者简单问题,在线等待~~
- 怎么捕捉SocketConnectio的连接Error的异常啊(急)
- 共享软件如果包含不合法功能,是否会有麻烦?
- 高分求教,关于Midas.dll文件的问题?急急急!!!在线等待!!!
To yansea(思宏)给段代码看看吗,若通马上结贴
若你真的是想hookapi,那还是要给每个函数做一个说明的。
asm
Mov eax,&LP
push 参数N
Push 参数N-1
Push 参数N-2
...
Push 参数1
Call [EAX]
End;用API:CallWindowProc也可以的!
begin
ShowMessage(IntToStr(a+b+c+d));
Result := a+b;
end;//有这样一个函数;调用如下
procedure TForm1.Button1Click(Sender: TObject);
var
a,b :integer;
begin
a := 10;
b := 11;
asm
mov eax, a
mov edx, b
mov ecx, 11
push 11 //使用堆栈
call Afunction
end;
end;
几点说明 “默认情况下若参数在3个已内,将分别使用eax、edx和ecx。超过3个参数部分将使用堆栈。返回参数的存放视长度而定。8位用al返回,16位用ax,32位用eax,64位用用两个32位寄存器edx:eax,其中eax是低位。”