アプリケーション全体のパブリックメソッドを修正する必要があります。自分自身でパブリックメソッドを置き換える必要がありますが、パッチメソッドから元のメソッドを呼び出すことはできます。パブリック非仮想メソッドへのパッチ適用
私は自分の方法でこのメソッドを置き換える方法を知っています。 How to change the implementation (detour) of an externally declared function
そして、ここでもう一つの例:Make Disabled Menu and Toolbar Images look better?
しかし、私にはわからないことは、元の最初の呼び出し方法です。例えば
// Store the original address of the method to patch
var OriginalMethodBackup: TXRedirCode;
// this is the implementation of the new method
procedure MyNew_Method(Self: TObject; Index: Integer);
begin
try
// some code here
call ORIGINAL public method here
finally
// some code here
end;
end;
EDIT:私は、Delphi迂回ライブラリを試してみましたが、それは文句を言わないD5とD7の下でコンパイルします。ポインタ演算、未知の型、クラスvars、未知のコンパイラ指令、未知のasm命令など、多くの問題があります。コードはD5とD7の両方をサポートするように移植されなければなりません。私は今までにほとんどの移植を行ってきましたが、まだいくつかの問題に取り組んでいます。いずれにせよ、私はそれが完了した後にそれが正しく働くかどうか分からない。代替案が必要になるかもしれない。
その方法は仮想ですか? –
@ Arioch'The、それは仮想ではありません – zig