Real example "ATBinHex"


As a real example of a translation from Delphi source code into C++, the excellent ATBinHex component of Alexey Torgashin was chosen. ATBinHex is a quick file viewer component with many options. Among others you can change between text, binary, hexadecimal and unicode mode.

Meanwhile no official website for the download of this component seems to exist any more, it is, however, available by different download portals furthermore. The original code is also contained in the zip file of this translation example.


Download the ATBinHex example


Delphi demo application


A simplified demo has been created, which doesn't depend on additional components as the original demo of Alexey Torgashin. In addition, it isn't necessary to install the component before compiling the application. The translated C++ code isn't tested sufficiently so that at an installation should be done with caution only.


The Delphi demo is in the in the folder "ATBinHexSource". It was made with the BDS 2006. The original source code of Alexey Torgashin in the version 2.7 is in the subdirectory "Source".



Version of CBuilder


The Delphi code was translated by use of the VCL of CBuilder 6 and the project war created for the CBuilder 2009. A use of the translated code with CBuilder 6 would have to fight with additional difficulties because there WideStrings and the __int64 type are supported badly.



Delphi2Cpp project


The Project folder corresponds to the folder of Delphi2Cpp with the same name. The files which Delphi2Cpp uses to translate the source code are into this folders:

Project/
ATBinHex.prj  Delphi2Cpp options to translate the ATBinHex code 
ATBinHex.txt  List of identifiers, which is included by ATBinHex.prj 


Stadia of the translation


Different stadia of the translation can be found in the following folders:

MadeCpp/  the unmodified result of the translation with Delphi2Cpp 1.4.0 
MadeCompile/  the C++ code made compile 
MadeRun/  the C++ code made run 

C++Builder project


The project for C++Builder 2009 is in the folder "ATBinHexExe2009".

ATBinHexCpp  A copy of the folder "MadeRun" (see above) 
ATBinHexExe.cbproj  C++Builder 2009 project file 
ATBinHexExeCpp  file for "WinMain" 
main.h/.cpp/.frm  main form 

In addition ther are copis of the files from ../Delphi2Cpp/Source/CBuilder.

d2c_systypes.h
d2c_system.h
d2c_system.cpp
d2c_sysmath.h
d2c_sysmath.cpp
d2c_sysfile.h
d2c_sysfile.cpp // not used in this project

These files of Delphi2Cpp 1.5.1 are extended by some supplementary functions, which are needed here: Assert, Inc, SetString, Sqr.



Result


It would be easy to achieve perfect translation results by suitable choice and modifications of source code. It, however, was aim in this test to attain an objective assessment of the translation capabilities of Delphi2Cpp. Therefore here was tried to translate publicly available unmodified source code as good as possible.

This translation was made with Delphi2Cpp 1.3.0 for the first time in May 2010. At that time the result was: approx. 7500 lines of Delphi source code were translated. Less than 100 lines of code in the produced C++ code had to be reworked. January 2011 with Delphi2Cpp 1.4.0 the number of necessary coreections was reduced to 34. 24 changes are necessary with Delphi2Cpp 1.5.1 currently in September 2011. 10 changes are simple substitutions of the expression "Classes__0" by "Classes__1". This difference arises from the circumstance that the C++ version of the VCL of the C++ Builders isn't generated with Delphi2Cpp.The ways of counting change with every version of the C++ Builder.
To make the compilable code work, only one final correction was necessary.


Delphi2Cpp version  date  number of corrections 
Delphi2Cpp 1.3.0  May 2010  < 100 
Delphi2Cpp 1.4.0  Jan 2011  34 
Delphi2Cpp 1.5.1  Sept 2011  24 



   deutsch Deutsch

 
Latest News
09/03/15
Delphi2Cpp 1.7.0 New translation options [more...]

01/30/12
Delphi2Cpp 1.6.3 Better construction of objects [more...]



"We successfully used your tool for migrating our code base to C++."


Roel Vliegen
magnaview 09/21/2015



[from case study...]

"A masterpiece -- Delphi2Cpp has exceeded all my expectations by far."


Tony Hürlimann
virtual-optima 08/20/2011



"First off, I have to say WOW! Delphi2Cpp is doing a *fantastic* job!"


Daniel Flower
linkrealms 01/15/2011


 
This website is generated from plain text with [Minimal Website ]

Minimal Website
Minimal Website is made with TextTransformer

TextTransformer
TextTransformer is made with Borland CBuilder

  borland