4

我是这个社区的新手,所以如果我在错误的部分提出这个问题违反了我们社区的任何条款和条件,那么我很抱歉。我一直在寻找上述问题的答案很长一段时间,但没有一个结果是相关的。

  • 我只想知道在java中我们可以通过使用javap来探索java类方法,如何在c++中做同样的事情???
  • 假设,我想查看 java 中 String 类的所有方法,我会使用 javap 来显示它的所有方法、它们的返回类型、它们的参数数量和它们的数据类型等。
  • 如何在 C++ 中做同样的事情???
  • 还有一种命令行方式来探索Java语言中特定包中的所有包和类吗???
  • 假设java** java.awt.*或任何此类方法都知道特定包中的所有包和类。
4

2 回答 2

1

我只想知道在java中我们可以通过使用javap来探索java类方法,如何在c++中做同样的事情???

你真的得不到任何有用的东西。对于 C++ 程序集,您能得到的最好的结果就是名称混乱。Java 将类的所有方法签名存储在 .class 文件中,因此可以引用和引用它们。但是 C++ 编译为汇编,并且可以与内存地址和堆栈以及其他较低级别的东西一起使用。

假设,我想查看 java 中 String 类的所有方法,我会使用 javap 来显示它的所有方法、它们的返回类型、它们的参数数量和它们的数据类型等。如何在 C++ 中做同样的事情???

或者您可以阅读该库的文档。您可以对 C++ 库执行相同操作:阅读文档。这就是它的用途。或者通读库的标题,因为每个 C++ 库都有这些。

还有一种命令行方式来探索Java语言中特定包中的所有包和类吗???

对于 Java,您之前提到javap过。你去吧:)

对于 C++,这实际上取决于您使用的编译器工具链。例如,Microsoft Visual C++ 有dumpbinCLI 工具,它可以提供大量的信息。但同样,您只能获得混乱的名称,这些名称可能反映也可能不反映程序使用的命名空间和类的结构。

假设 java** java.awt.* 或任何此类方法了解特定包内的所有包和类。

...

大部分信息(方法、类、命名空间(或 Java 中的包))都可以从相关库的任何文档中了解。如果您想要源代码,那么您可以免费获得它(对于开源项目),从库供应商处购买(对于闭源项目),或者只使用文档。

于 2017-05-14T13:24:44.717 回答
0

您的主要问题是一个可执行文件(c++ 程序的输出),您能找到成员、函数等吗?

这在 C++ 中是不可能的。

C++ 可执行文件包含本机汇编代码。
在 Java 中,类文件实际上包含字节码。

于 2017-05-14T12:54:02.273 回答