-1

以下に示すように、関数 A と関数 B があるとします。

#include <stdio.h>
#include <stdlib.h>

void  a( )
{
    printf("Hello from function a!\n");

    return;
}

void  b( )
{
    printf("Hello from function b!\n");

    return;
}

int main( )
{

    printf( "a = %p, b = %p\n", a, b );
    a( );
    b( );

    return 0;
}

この場合、次の出力が得られます。

a = 00401334, b = 00401349
Hello from function a!
Hello from function b!

プログラムで (C と winapi を使用して) 外部プログラムからのこれら 2 つの関数呼び出しを切り替えて、a() への呼び出しで b のメッセージを出力し、b() で a のメッセージを何らかのタイプのフックで出力する方法はありますか? もしそうなら、私のプログラムが関数を切り替えるのに十分長く実行され、関数がインライン化されていないと仮定して、どのようにそのようなプログラムを書くのでしょうか。

4

2 に答える 2