Ignore NODEFINE

Top  Previous  Next

User interface > Translation options > Namespace options > Ignore NODEFINE

One of the namespace options is to ignore the NODEFINE directive for listed types.

 

 

IgnoreNODEFINE

 

 

 

Type identifiers listed in this box are treated as if there werde no NODEFINE directive. If the tuning option to apply NODEFINE is not disabled all types specified with this directive "disappear" in the file were they are defined. Nevertheless they my be defined in another file (this is often the case for C++Builder). When thes tyes then have to be disambiguited or simple if they are used in headers. they will not be qualified with the namespace of their original unit any more.

E.g. instead of:

 

void foo(const System::String& s);

 

the following line is output:

 

void foo(const String& s);

 

If the NODEFINE directive is ignored, the first declaration, will be written again.

 

 

There is a special problem with old version of the RTL. In System.pas for RAD Studio 10.2 Tokyo there are many types defined with wrong NODEFINE specifications. E.g.

 

{NODEFINE    string       'UnicodeString' } {$OBJTYPENAME string   'NUnicodeString'} { defined in ustring.h }

 

instead of the correct version in RAD Studio 11.1 Alexandia:

 

{$NODEFINE    string       'UnicodeString' } {$OBJTYPENAME string   'NUnicodeString'} { defined in ustring.h }

 

Delphi2Cpp always ignored the wrong specifications in the Tokyo version. Therefore always the namespaces were written.

 

 

 

 



This page belongs to the Delphi2Cpp Documentation

Delphi2Cpp home  Content