如何获取DLL中的函数列表(托pipe和非托pipe)?

所以我玩弄一个DLL(UnityEditor.dll)我想获得这个托pipe的DLL里面的所有函数的列表是非托pipe的(dll可能是由本地C ++(如果使用静态编译的库)组成的,核心和托pipeC ++包装所有包装成一个dll)我想获得该Dll内的所有非托pipefunction的列表,例如创build我自己的托pipe\非托pipe包装?

Visual Studio附带的dumpbin.exe实用程序可用于显示导出列表。 例如:

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

示例输出:

 Microsoft(R)COFF / PE Dumper Version 10.00.30319.01
版权所有(C)微软公司。 版权所有。


文件C:\ Windows \ System32 \ kernel32.dll的转储

文件类型:DLL

  部分包含KERNEL32.dll的以下导出

     00000000的特点
     4E20FBA0时间日期戳2011年7月16日星期六03:46:56
         0.00版本
            1个序数基地
         1390个功能
         1390个名字

    序号提示RVA名称

           1 0 AcquireSRWLockExclusive(转发给NTDLL.RtlAcquireSRWLockExclusive)
           2 1 AcquireSRWLockShared(转发给NTDLL.RtlAcquireSRWLockShared)
           3 2 00004440 ActivateActCtx
           4 3 00066B80 AddAtomA
           5 4 00066B20 AddAtomW
           6 5 0006ADF0 AddConsoleAliasA
           7 6 0006AE60 AddConsoleAliasW

打开.dll文件,并使用Microsoft提供的二进制PE / COFF规范查找此PE文件的EXPORT部分。

但是我认为这是一个矫枉过正的问题。 你的问题应该是一个具体的要求。 你想要包装什么,你有什么? 只有二​​进制文件和没有源/头?

DLL不包含“功能”。 它们包含代码和入口点。 除非您有调试数据库,否则无法从优化的代码中知道函数之间的转换。