在我的项目中,我需要在运行时加载 DLL,在此之前我没有关于它们的信息。我需要能够用 LoadLibrary 和 GetProcAddress 来枚举函数及其(装饰的)名称(这是对我的要求)。名称可能经过修饰,也可能不经过修饰,显然 GetProcAddress 需要修饰名称(如果有的话)。
有没有合理的方法来做到这一点?
我可以使用 Depends 和其他工具自己提取修饰名称,但这需要在运行时完成。使用UnDecorateSymbolName之类的函数,必须有一种方法可以将我缺少的修饰名称取出。我尝试了 SymEnumSymbols 但未修饰名称。
请注意,我不是在询问调用函数,只是在没有 .DEF 文件的情况下从 DLL 中枚举名称。我在 Visual Studio 2010 上,假设所有 DLL 都将在 Visual Studio 上编译。