What is not translated

Top  Previous  Next

There are some principle problems at the conversion of Delphi code to C++ which cannot be resolved by an automatic translator. But even things which DelphiXE2C++11, normally can handle may fail in complex nested cases. Sometimes DelphiXE2C++11 generates explicit "todo"-comments where something has to be completed manually.

 

The conversion to C++Builder code seamlessly works together with the existing adoption to the Delphi RTL/VCL, but manual justifications to some helper names might be necessary. DelphiXE2C++11 makes little effort to cooperate with own Delphi code. An example of using a Delphi interface is here. If you need more, please contact me.

 

Some Delphi constructs, which aren't, automatically translated yet are:

 

Inline assembler code in Delphi and C++ almost are identically. Delphi2Cpp II doesn't translate these parts.but only copies them.
Code that relies on the internal members or memory layout of Delphi types cannot be converted automatically.
DelphiXE2C++11 always assumes unique names.But e.g. there might be symbols from the operation system, which differ in notation..
Some problems with constructors remain. E.g. Delphi2Cpp II cannot distinguish constructors with equal signatures.
parameters for destructors are ignored
In Delphi everything inside of a unit is accessible to each other. As s compromise only classes are made friends to each others
Manual post-processing to achieve const-correctness is necessary.
Multithreading classes and routines are formally translated, but not checked by an expert
Resource strings simply are treated as non-resource strings
In C++ classes with abstract methods cannot be created
The consequences of the ZEROBASEDSTRING directive are not corrected automatically.
Parts of the RTL operate directly on the virtual method table of objects. These parts aren't reproduced. The most important consequence of this lack is, that streaming of forms and other types isn't possible in Delphi manner.
Little effort has been done to test the COM technologies of the Delphi ActiveX framework..
For C++Builder Variant is supported for other compilers not, but TVarRec
At the current state DelphiXE2Cpp doesn't deal with method resolution clauses

 

Special problems:

 

lifetime extension of bound variables

https://isocpp.org/wiki/faq/strange-inheritance#calling-virtuals-from-ctors

 

 

       

 

 

 

 

 

 

 



This page belongs to the DelphiXE2Cpp11 Documentation

DelphiXE2Cpp11 home  Content