4

c++忍者ブードゥー手袋を着用してください。

iOSアプリで使用するサードパーティのライブラリを購入しました。そのライブラリには2つのバージョンがあるので、それらbull_frog_noises.aをとと呼びましょうtoad_frog_noises.a

同社は、誰かが1つのアプリで両方のカエルの鳴き声を出したいとは想像もしていなかったため、各ライブラリは同じメソッド名を提供しています。

MAKE_FROG_NOISE();

これらのライブラリを再構築または変更して、互いに衝突することなく両方を使用できるようにする方法はありますか? 理想的な状態は次のとおりです。

MAKE_BULL_FROG_NOISE();
MAKE_TOAD_FROG_NOISE();
4

2 に答える 2

3

必要なメソッド名を使用して、これらのライブラリのラッパーとして別の静的ライブラリを構築し、プロジェクトにラッパーライブラリを含めることができます。

このような:

1-bull_frog_noises_wrapper.aという名前の新しい静的ライブラリプロジェクトを作成します。

2-この新しく作成されたライブラリへの依存関係としてbull_frog_noises.aを含めます。

3-次のようなメソッドを作成します。

void MAKE_BULL_FROG_NOISE()
{
    MAKE_FROG_NOISE();
}

4-toad_frog_noises.aについても同じことを行い、次のようなメソッドを作成します。

void MAKE_TOAD_FROG_NOISE()
{
    MAKE_FROG_NOISE();
}

5-プロジェクトにこれらのラッパーを追加すれば完了です。

メインプロジェクトで使用するヘッダーファイルは、内部ライブラリと競合しないように注意してください。

それが役に立てば幸い。

于 2012-04-05T22:26:41.613 に答える
3

16進エディターを使用して、これらのライブラリーの1つを手動で変更し、MAKE_FROG_NOISEのすべてのインスタンスがMAKE_TOAD_NOISEに置き換えられるようにします。その1つだけを変更する場合は、細心の注意を払う必要があります。バイトを置き換えることしかできません。何も挿入または削除しないでください。また、ファイル内の他の内容は変更しないでください。

于 2012-04-05T22:56:38.843 に答える