我想从c ++ dll获取代码,我知道我们很容易通过反射器从.Net dll获得。 c ++中有没有可用的方法?
提前致谢
答案 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 ++程序也可以在自己的可执行文件中读取调试信息,但它绝对不是特别便携,快速,或者可能是一个强大的解决方案。