Mi piace ottenere il codice da C++ dll, so che otteniamo facilmente da .Net dll dal riflettore. C'è qualche metodo disponibile in C++ per questo?Esiste un concetto in C++ come reflector in .Net?
Grazie Anticipo
Mi piace ottenere il codice da C++ dll, so che otteniamo facilmente da .Net dll dal riflettore. C'è qualche metodo disponibile in C++ per questo?Esiste un concetto in C++ come reflector in .Net?
Grazie Anticipo
Il C++ viene compilato direttamente sul codice macchina. Non esiste un linguaggio intermedio come in .NET. Ci sono some C++ disassemblers si può dare un'occhiata a. Hex-Rays decompiler è particolarmente buono.
In breve, no. Ogni 'riflessione' deve essere attraverso un meccanismo codificato a mano.
Penso che Qt supporti qualcosa del genere. – mpen
Credo che si stia parlando di C++ non gestito. In tal caso, non è possibile. Il C++ è compilato in codice macchina diverso dai linguaggi gestiti che compila in un linguaggio intermedio che contiene i metadati relativi al codice che è stato compilato.
No, il C++ non ha nulla come il riflettore di RedGate, ed è incapace di una cosa del genere. Un disassemblatore non si avvicina a quello che stai cercando.
Il codice per le funzionalità introspettive può essere generato dall'output di Gcc-XML o iniettato con OpenC++, ma lo stesso standard C++ non richiede alcuna particolare struttura per questo e nessuna struttura/utilità per questo è inclusa in bundle con qualsiasi compilatori. È anche possibile che un programma C++ legga le informazioni di debug nel proprio file eseguibile, ma non è sicuramente particolarmente portabile, veloce o probabile per una soluzione robusta.
+1 per raggi Hex, sembra eccellente! – Francesco
+1 anche per raggi Hex! Ho appena visto il video (sul loro sito web) e sembra davvero qualcosa che ho cercato per molto tempo! Grazie! – Poni