vcl函数的修改!!!(50分)

  • 主题发起人 蛮牛野蛮牛
  • 开始时间

蛮牛野蛮牛

Unregistered / Unconfirmed
GUEST, unregistred user!
请问我想修改Application.MessageBox这个函数,但是我不想修改VCL源代码,而是通过
函数地址来修改它的执行方法。
我使用MethodAddress只能得到Published的函数。如果是想修改public的函数该怎么做?
var
p : Pointer;
begin
p := MethodAddress(MyMessageBox) ;
@Application.MessageBox := p;
end;
怎么实现上面的效果呢?

主要是一个老程序中用了许多的Application.MessageBox现在想换皮肤,那么必然都要换
这个时候Application.MessageBox的修改量太大了。用UltraEdit替换所有文件中的字符
也可以。

 
我说一句很蠢的话,可以用查找替换方式直接修改源代码么?
 
请看清楚,我不是说可以用工具替换吗?我主要想知道怎么取得函数的地址。
 
顶部