首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++中枚举修饰过的DLL函数

在C++中枚举修饰过的DLL函数
EN

Stack Overflow用户
提问于 2012-07-31 02:55:41
回答 1查看 256关注 0票数 3

在我的项目中,我需要在运行时加载DLL,在此之前我没有关于它们的信息。我需要能够枚举函数及其(修饰的)名称,以便使用LoadLibrary和GetProcAddress调用(这是对我的一个要求)。名称可能被修饰,也可能不被修饰,显然,如果GetProcAddress有修饰的名称,它需要修饰的名称。

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

我可以使用Depends和其他工具自己提取修饰名称,但这需要在运行时完成。有了像UnDecorateSymbolName这样的函数,一定有办法去掉我遗漏的修饰名称。我试过SymEnumSymbols,但是名字没有修饰。

请注意,我并不是在询问如何调用函数,只是在没有.DEF文件的情况下枚举DLL中的名称。我使用的是Visual Studio2010,假设所有的all都将在Visual Studio上编译。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-31 13:38:51

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

下面是输出的快照,显示了DLL的经过修饰的导出函数:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11727796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档