c ++中有没有像.Net中的反射器这样的概念?

时间:2010-09-15 07:11:59

标签: .net c++ dll reflector

我想从c ++ dll获取代码,我知道我们很容易通过反射器从.Net dll获得。 c ++中有没有可用的方法?

提前致谢

5 个答案:

答案 0 :(得分:16)

C ++直接编译为机器代码。 .NET中没有中间语言。有some C++ disassemblers你可以看看。 Hex-Rays decompiler特别好。

答案 1 :(得分:5)

我相信你在谈论非托管C ++。在那种情况下,这是不可能的。 C ++被编译成机器代码,不同于托管语言,它编译成一种中间语言,其中包含有关已编译代码的元数据。

答案 2 :(得分:1)

简而言之,没有。任何“反射”都必须通过一些手工编码机制。

答案 3 :(得分:1)

不,C ++没有像RedGate的反射器那样,并且无法做到这一点。反汇编程序不会接近你想要的东西。

答案 4 :(得分:1)

内省功能的代码可以从Gcc-XML的输出生成,或者用OpenC ++注入,但C ++标准本身不需要任何特定的设施,并且没有任何设施/实用程序与任何流行的编译器捆绑在一起。 C ++程序也可以在自己的可执行文件中读取调试信息,但它绝对不是特别便携,快速,或者可能是一个强大的解决方案。