是否有可能获得在Windows中的静态库中定义的函数的地址?

时间:2014-05-06 10:50:43

标签: windows winapi static-libraries static-linking

有没有办法获取静态库(.lib)中定义的函数的地址,该函数已链接到某个应用程序。

由于

1 个答案:

答案 0 :(得分:1)

静态库只不过是目标文件的存档(如.ZIP文件)。

当您链接到静态库时,链接器将检查需要哪些目标文件并将它们链接到可执行文件。结果与您在项目中直接编译库的源代码完全相同。

所以实际的问题是:是否有可能在可执行文件中找到非静态函数的地址?

某些链接器(如GNU)默认情况下会生成一个符号表,即使在没有调试信息的项目中也是如此。在这种情况下,您可以解析符号表。但是,许多链接器不会创建此符号表。在这种情况下,所有函数名称的信息都会丢失,因此如果没有调试信息,您将无法获取有关该地址的信息。