Dieser Artikel kann veraltet sein: Aktuelle Dokumentation online (Englisch)
Array of const
"Arrays of const" sind dem "Open arrays" ähnlich. Der Wert eines array of const muss in C++ durch zwei Werte repräsentiert werden: einen TVarRec-Zeiger und den Index des letzten Elementes des Array's, das an der Position beginnt, auf die der Zeiger zeigt.
procedure foo(arr : array of const);
->
void __fastcall foo ( TVarRec* arr, const int Args_Size );
Wenn eine derartige Funktion mit einem set als Argument aufgerufen wird, wird das Makro ARRAYOFCONST in die C++ Ausgabe geschrieben. Dies Makro ist für den C++ CBuilder definiert als:
#define ARRAYOFCONST(values) OpenArrayvalues, OpenArrayCount values.GetHigh()
Delphi2Cpp entscheidet anhand des erwarteten Parametertyps wie das Set-Argument übersetzt wird:
procedure foo(arr : array of const); procedure bar(set : TCharSet);
foo(['hello', 'world']); bar(['hello', 'world']);
->
#define test__0 (System::Set< AnsiString, 0, 255 >() << AnsiString ( "hello" ) << AnsiString ( "world" ) )
void __fastcall foo ( TVarRec* arr, const int arr_size ); void __fastcall bar ( TStringSet set );
foo ( ARRAYOFCONST(( "hello", "world" )) ); bar ( test__0 );
Wird ein so übergebenes array an eine weitere Funktion weitergereicht, so sorgt Delphi2Cpp dafür, dass im C++ Code auch der zweite Parameter weitergereicht wird.
procedure foo(var arr: array of const); begin bar( arr ); end;
->
void __fastcall foo ( TVarRec* arr, const int arr_size ) { bar ( arr, arr_size ); }

Letzte Neuigkeiten |
19.10.23
Delphi2Cpp 2.3: Konvertierung von DFM-Dateien [more...] |
31.01.23
Delphi2Cpp 2.2: Erleichterte Übersetzung unvollständigen Codes [more...] |
[aus Fallstudie...] "Eine Meisterleistung -- Delphi2Cpp hat alle meine Erwartungen weit übertroffen." Tony Hürlimann
virtual-optima
29.08.2011
|
"Ich muss mich nochmal für deinen Einsatz und die Qualität deiner Arbeit bedanken, das ist absolut überdurchschnittlich ..." Gerald Ebner
Significant Software
22.01.2010
|
Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.
![]() |
Minimal Website ist mit Hilfe des TextTransformers hergestellt.
![]() |
Der TextTransformer ist gemacht mit dem Borland
CBuilder
![]() |