c++ - 查看 C++ DLL 的成员

标签 c++ reflection legacy-code

我有一个 1998 年编写的 C++ DLL,我想查看成员(属性、字段、方法、构造函数等)。我的理解是写这个DLL的公司已经不在了,但是还在用。

如果我只有 DLL,这可能吗?或者您是否只需要知道 DLL 中的内容才能使用它。如果可能的话,我会怎么做?

我希望通过 P/Invoke 使用来自 .Net 的 DLL。

最佳答案

得到这个:http://www.dependencywalker.com/ ,使用depends.exe打开DLL,然后激活“查看”菜单中的“Undecorate C++ Functions”。我主要用它来查找依赖项,但它也暴露了 DLL 的入口点。

这不是万无一失的,因为公开类的 DLL 不必导出其方法。例如,纯虚方法布局非常统一,您可以将您的实例公开为可能带有工厂函数的接口(interface)指针。但它可能会解决您的问题。

无论如何,您都需要一份 dependency walker。 :)

关于c++ - 查看 C++ DLL 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822156/

相关文章:

c++ - 与 Visual Studio 2008 一起使用需要哪个 Windows 驱动程序工具包

c++ - hex << setw() << setfill() 不适用于指针值输出

c++ - volatile 未按预期工作

c++旋转加密

java - JUnit 4 和异常暂停

c# - 可以删除/替换整个解决方案中的代码

c++ - 检查大量文件对是否相同的快速方法

c# - .NET,C#,反射 : list the fields of a field that, 本身,有字段

c# - 从 methodinfo 获取委托(delegate)

c - C函数的隐式int返回值