c++ - 获取 Win32 二进制文件中的类偏移量

标签 c++ winapi

对于 Win32 可移植可执行文件 (PE)

  • 如何获取使用的类列表
  • 如何获取给定类的偏移量

最佳答案

类没有偏移量——它的方法有偏移量。如果 PE 文件是一个 DLL,并且导出了一个类,您可以从导出的函数表中获取其方法的偏移量。名称将被破坏。改编方案是特定于编译器和版本的。

您可以使用 DUMPBIN 工具(随 Visual Studio 或 Platform SDK 提供)查看导出表。 IIRC,它甚至可以为你解开名字。如果您想以编程方式执行此操作,请使用 ImageHlp API 中的函数 - ImageLoad() 等等。

没有很好的方法来获取非导出类方法的偏移量。

此外,偏移量可以在 MAP 文件、调试符号或 PDB 文件中找到。如果它是第三方产品,您很可能无法使用这些产品。

编辑回复:Microsoft DLL。 Microsoft 通过 Microsoft Symbol Server 为他们的许多文件(包括 Win32 和 .NET)提供调试符号。自 v. 2005 起的 Visual Studio 可以在加载 DLL 时自动提取这些符号。

关于c++ - 获取 Win32 二进制文件中的类偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11149134/

相关文章:

c++ - glDrawArrays 奇怪地绘制数组

c++ - 使用带有动态库的 Eigen 和 Visual Studio 2013 的内存对齐错误

c++ - 查找预编译头文件时跳过

c - Windows API STARTUPINFO 被破坏?

c++ - 运行 C++ 应用程序时摆脱黑色控制台窗口

c++ - zi_lib 并发示例

c++ - wxWidgets:定期重绘 wxFrame 中的图像

c++ - 打开/关闭 handle 时会发生什么?

java - 如何在java中使用SetWindowsHookEx函数?