Есть ли какая-либо концепция в c++, как reflector in.Net?

Мне нравится получать код из C++ dll, я знаю, что мы легко получаем из .Net dll с помощью рефлектора. Существуют ли в C++ для этого метода?

Заранее Спасибо

5 ответов


в C++ компилируется непосредственно в машинный код. Здесь нет промежуточного языка .Сеть. Есть некоторые дизассемблеры C++ вы можете взглянуть на. Хекс-лучей декомпилятор особенно хороша.


Я считаю, что вы говорите о неуправляемом C++. В таком случае это невозможно. На C++ компилируется в машинный код, в отличие от управляемых языков, которые компилируются в промежуточный язык, который содержит метаданные о коде, который был составлен.


короче, нет. Любое "отражение" должно проходить через какой-то ручной механизм.


нет, C++ не имеет ничего подобного отражателю RedGate и не способен на такое. Дизассемблер не приблизится к тому, что вы ищете.


код для интроспективных возможностей может быть сгенерирован из вывода Gcc-XML или введен с OpenC++, но сам стандарт C++ не требует каких-либо конкретных средств для этого, и никакие средства/утилиты для этого не поставляются в комплекте с любыми популярными компиляторами. Программа на C++ также может считывать отладочную информацию в собственном исполняемом файле, но это определенно не особенно портативно, быстро или, вероятно, сделает для надежного решения.