8

だから私はDLL(UnityEditor.dll)をいじってみますこのマネージDLL内のアンマネージ(dllはおそらくネイティブC ++(静的にコンパイルされたライブラリが使用されている場合はそれを使用)コアから構成され、マネージC ++ラッパーはすべて1つのdllにラップされています。)たとえば、独自のマネージド\アンマネージラッパーを作成するために、そのDLL内のすべてのアンマネージ関数のリストを取得したいですか?

4

3 に答える 3

13

Visual Studio に同dumpbin.exe梱されているユーティリティを使用して、エクスポートのリストを表示できます。例えば:

dumpbin.exe /EXPORTS C:\WINDOWS\System32\Kernel32.dll

出力例:

Microsoft (R) COFF/PE Dumper バージョン 10.00.30319.01
Copyright (C) Microsoft Corporation. 全著作権所有。


ファイル C:\Windows\System32\kernel32.dll のダンプ

ファイルの種類: DLL

  セクションには、KERNEL32.dll の次のエクスポートが含まれています。

    00000000の特徴
    4E20FBA0 タイム デート スタンプ Sat Jul 16 03:46:56 2011
        0.00 バージョン
           1 序数ベース
        1390 機能の数
        1390名の数

    序数のヒント RVA 名

          1 0 AcquireSRWLockExclusive (NTDLL.RtlAcquireSRWLockExclusive に転送)
          2 1 AcquireSRWLockShared (NTDLL.RtlAcquireSRWLockShared に転送)
          3 2 00004440 ActivateActCtx
          4 3 00066B80 アドアトム
          5 4 00066B20 AddAtomW
          6 5 0006ADF0 AddConsoleAliasA
          7 6 0006AE60 AddConsoleAliasW
于 2012-07-25T20:21:44.157 に答える
2

.dll ファイルを開き、Microsoft から入手できるバイナリ PE/COFF 仕様を使用して、この PE ファイルの EXPORT セクションを探します。

しかし、それはやり過ぎだと思います。あなたの質問は、具体的な欲求でなければなりません。正確に何をラップしたいですか、何を持っていますか? バイナリのみで、ソース/ヘッダーはありませんか?

于 2012-07-25T20:22:34.223 に答える
2

DLL には「関数」は含まれません。コードとエントリポイントが含まれています。デバッグ データベースがない限り、最適化されたコードから、関数間の遷移が発生する場所を特定することはできません。

于 2012-07-25T20:40:08.183 に答える