こんにちは DLLのエクスポートされた関数をDLLの別の関数に転送します。 ExpX64を使用して、DLLのエクスポートテーブルを編集します。 (例えば私が?MyFuncと@ MyClassの@@ SAJJAEAUMyStruct @@@ Z [email protected]@@[email protected]@@Zへの転送)DLL内にエクスポートされた関数を転送する際の問題
私の問題は私の目標関数がクラスの一員であるということです実行時にCOMExceptionを生成する転送(「存在しなくなったオブジェクトを使用しようとしました」)
私は間違っていると思いますか? (規則を呼び出し、通常の関数とクラスメンバー1を転送違いがあるはず?。) 私はこのようなMyFuncとを実装:
__declspec(dllexport) LONG MyClass::MyFunc (long a,struct MyStruct& b)
PS:私もプロキシを作成(DLLプロキシを使用することができます私が欲しいのターゲット機能を実装して、元のDLLに他のすべての機能を転送するが、私の関数はクラスの一部である問題が、まだ残っているDLL)
おかげ
クラス(どのモジュール内)にどのようにメモリを割り当てますか?どのようにそれを解放しますか? – wimh
私はそうではありません!私は静的メソッドを使用しています(私は静的メソッドにエクスポートされた関数を転送しています) –