В java мы можем исследовать класс java, методы, используя дизассемблер javap. Как сделать то же самое в C ++?

Я новичок в этом сообществе, поэтому, если я нарушаю любой т&c нашего сообщества, задав этот вопрос в неправильном разделе, тогда извините.
Я долго искал ответы на вышеуказанный вопрос, но ни один из результатов не имел отношения к делу.

  • Я просто хочу знать, что в Java мы смогли изучить методы класса Java с помощью javap, как сделать то же самое в C ++ ???
  • Предположим, я хотел бы увидеть все методы класса String в Java, я бы использовал javap, с помощью которого все его методы, их возвращаемый тип, их количество аргументов & их тип данных и т. д., отображаются.
  • Как сделать то же самое в C ++ ???
  • Также есть способ командной строки, чтобы узнать, что все пакеты & классы есть в конкретном пакете на языке Java ???
  • предполагать java** java.awt.* или любой такой метод, чтобы узнать все пакеты & классы внутри определенного пакета.

4

Решение

Я просто хочу знать, что в Java мы смогли изучить методы класса Java с помощью javap, как сделать то же самое в C ++ ???

Вы не можете получить что-нибудь полезное. Для сборок C ++ лучшее, что вы можете получить — искаженные имена. Java хранит все сигнатуры методов класса в файле .class, поэтому на них можно ссылаться и ссылаться. Но C ++ компилируется в ассемблер, и это работает с адресами и стеками памяти и другими вещами более низкого уровня.

Предположим, я хотел бы увидеть все методы класса String в Java, я бы использовал javap, с помощью которого все его методы, их возвращаемый тип, их количество аргументов & их тип данных и т. д., отображаются.
Как сделать то же самое в C ++ ???

Или вы можете прочитать документацию для библиотеки. Вы можете сделать то же самое с библиотеками C ++: прочитайте документацию. Вот для чего это. Или прочитайте заголовки для библиотеки, поскольку у каждой библиотеки C ++ есть те.

Также есть способ командной строки, чтобы узнать, что все пакеты & классы есть в конкретном пакете на языке Java ???

Для Java вы упомянули javap ранее. Там вы идете 🙂

Для C ++ это действительно зависит от используемой вами цепочки инструментов компилятора. Например, Microsoft Visual C ++ имеет dumpbin Инструмент CLI, который может предоставить большое количество информации. Но опять же, вы можете получить только искаженные имена, которые могут отражать или не отражать структуру пространств имен и классов, которые использует программа.

Предположим, что java ** java.awt. * Или любой такой метод, чтобы знать все пакеты & классы внутри определенного пакета.

Большую часть этой информации (методы, классы, пространства имен (или пакеты в Java)) можно узнать из любой документации, имеющейся для рассматриваемой библиотеки. Если вам нужен исходный код, вы можете получить его бесплатно (для проектов с открытым исходным кодом), купить его у поставщика библиотеки (для проектов с закрытым исходным кодом) или просто обойтись без документации.

1

Другие решения

Ваш главный вопрос — это исполняемый файл (вывод программы на С ++), где вы можете найти членов, функции и т. Д.

Это невозможно в C ++.

Исполняемый файл C ++ содержит собственный ассемблерный код.
В Java файл класса содержит фактически байтовые коды.

0

По вопросам рекламы [email protected]