Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>If you lost the source file and you really only need to "get your work back", then you might as well start re-coding it because you're not going to get anything useful out of decompiler. I haven't been able to get anything re-compilable out of a decompiler since the days of Ms-DOS COM files (not to be confused with Windows COM!).</p> <p>A modern file, written in an high level language, ran throw an optimizing compiler simply doesn't include everything that's needed to reconstruct the source code.</p> <p>Examples, and it's just the top of the iceberg:</p> <ul> <li>Delphi's optimizing linker will SKIP code that's not used. Ever noticed when you want to place an brakepoint on a line of code and when the program starts the brakepoint is ignored because the code has been optimized-out?</li> <li>Delphi's optimizing compiler has the option of doing all sorts of things with your code: <ul> <li>It can inline procedures (so they're no longer where you wrote them, they're where the call is made).</li> <li>It can unwind "for" loops (so where you had an "for i:=1 to 10 do something" you now have "something; something; something;...".</li> <li>Local variables get optimized, addresses get reused.</li> </ul></li> <li>Data structures are aligned to whatever the rule of the day is. So your one word + 1 byte structures might have 4 or 8 bytes in memory, not 3 as you might expect.</li> <li>Code gets imported from other libraries. An DLL is not an DCU. A 3 lines DLL might actually import thousands of lines of code from those "uses" clauses.</li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload