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.
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.
If TMessageManager shall be used the NODEFINE directive for TMessage should be removed..
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 |