gpt4 book ai didi

c++ - 在 C++ 中枚举修饰的 DLL 函数

转载 作者:太空狗 更新时间:2023-10-29 21:48:03 26 4
gpt4 key购买 nike

在我的项目中,我需要在运行时加载 DLL,在此之前我没有关于它们的信息。我需要能够使用 LoadLibrary 和 GetProcAddress 调用的(修饰的)名称来枚举函数(这是强加给我的要求)。这些名称可能经过修饰,也可能未经过修饰,显然 GetProcAddress 需要经过修饰的名称(如果有的话)。

有没有合理的方法来做到这一点?

我可以使用 Depends 和其他工具自己提取修饰名,但这需要在运行时完成。具有类似 UnDecorateSymbolName 的功能,必须有一种方法来获取我所缺少的装饰名称。我尝试了 SymEnumSymbols 但没有修饰名称。

请注意,我不是在询问调用函数,只是从没有 .DEF 文件的 DLL 中枚举名称。我在 Visual Studio 2010 上,假设所有 DLL 都将在 Visual Studio 上编译。

最佳答案

如果您想在运行时使用 C++ 枚举 DLL 函数,请尝试 PEDUMP来自 Matt Pietrek(包含代码)。他展示了如何实现此功能。

在输出快照下方,显示了 DLL 的修饰导出函数:

enter image description here

关于c++ - 在 C++ 中枚举修饰的 DLL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11727796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com