Entwickler-Ecke
C# - Die Sprache - Variant nach C#
Kleinfeld - Sa 11.02.17 01:23
Titel: Variant nach C#
Weiß jemand wie ich folgende Structure mit einem Variant nach C# konvertieren kann?
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| type SharedMem=packed record CurrentMem: array [0..6191] of byte; case integer of 1: (Exception: record32); 2: (Exception: record32); end; |
Den Array würde ich mittels:
C#-Quelltext
1: 2:
| [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6191)] public byte[] CurrentMem; |
übersetzen. Aber wie ich den nachfolgenden Variant übersetze weiß ich leider nicht.
//edit: Record32 ist übrigens auch eine Structure. Hatte zuerst überlegt mit FieldOffset, aber ich weiß die Größe des Structure nicht.
Th69 - Sa 11.02.17 10:52
Hallo,
dein Array ist um eins zu klein (ein Array
[0..6191] hat 6192 Werte):
C#-Quelltext
1:
| [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6192)] |
Und als
FieldOffset gibt du dann für beide folgenden Records jeweils den gleichen Wert an:
Aber ist das wirklich der originale Delphi-Code, denn dann ergibt der Variant-Anteil doch keinen Sinn, wenn beide
case denselben Inhalt haben (geht das überhaupt, daß beide Variablen gleich heißen?).
Delete - Sa 11.02.17 19:51
- Nachträglich durch die Entwickler-Ecke gelöscht -
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!