Win32 Portable Executable(PE)の場合
- 使用したクラスのリストを取得するにはどうすればよいですか
- 特定のクラスのオフセットを取得する方法
クラスにはオフセットがありません-そのメソッドにはオフセットがあります。PEファイルがDLLであり、クラスがエクスポートされる場合、エクスポートされた関数テーブルからそのメソッドのオフセットを取得できます。ただし、名前は壊されます。マングリングスキームは、コンパイラおよびバージョンに固有です。
DUMPBINツール(VisualStudioまたはPlatformSDKで使用可能)を使用して、エクスポートテーブルを監視できます。IIRC、それはあなたのために名前を解きほぐすことさえできます。プログラムで実行する場合は、ImageHlpAPIの関数などを使用しますImageLoad()
。
エクスポートされていないクラスメソッドのオフセットを取得する良い方法はありません。
また、オフセットは、MAPファイル、デバッグシンボル、またはPDBファイルにあります。サードパーティ製品の場合、それらはおそらく利用できません。
再編集:MicrosoftDLL。Microsoftは、Microsoft Symbol Serverを介して、多くのファイル(Win32と.NETの両方)のデバッグシンボルを利用できるようにしています。v。2005以降のVisualStudioは、DLLのロード時にこれらのシンボルを自動的にプルできます。