有没有办法获取静态库(.lib)中定义的函数的地址,该函数已链接到某个应用程序。
由于
答案 0 :(得分:1)
静态库只不过是目标文件的存档(如.ZIP文件)。
当您链接到静态库时,链接器将检查需要哪些目标文件并将它们链接到可执行文件。结果与您在项目中直接编译库的源代码完全相同。
所以实际的问题是:是否有可能在可执行文件中找到非静态函数的地址?
某些链接器(如GNU)默认情况下会生成一个符号表,即使在没有调试信息的项目中也是如此。在这种情况下,您可以解析符号表。但是,许多链接器不会创建此符号表。在这种情况下,所有函数名称的信息都会丢失,因此如果没有调试信息,您将无法获取有关该地址的信息。