Entwickler-Ecke
Sonstiges (Delphi) - Übersetzung VB -> Delphi
F34r0fTh3D4rk - Fr 24.08.07 16:25
Titel: Übersetzung VB -> Delphi
hi,
wie kann ich folgenden vb code in delphi übersetzen ?
Quelltext
1: 2: 3: 4: 5: 6:
| <StructLayout(LayoutKind.Sequential, Pack := 1)> _ Public Structure SP_DEVICE_INTERFACE_DETAIL_DATA Public cbSize As UInt32 <MarshalAs(UnmanagedType.ByValTStr, SizeConst := 256)> _ Public DevicePath As String End Structure |
ich denke mal das Pack := 1 zeigt an, dass es ein packed record ist, aber was ist das <MarshalAs usw. ?
Eine folständige Übersetzung dieses Schnippels wäre toll, danke ;)
mein bisheriger Ansatz ist dieser:
Delphi-Quelltext
1: 2: 3: 4:
| TSP_DEVICE_INTERFACE_DETAIL_DATA = packed record cbSize: integer; DevicePath: string; end; |
mfg
arj - Fr 24.08.07 17:31
Der Device Path sollte vermutlich ein array[0..255] of char sein
F34r0fTh3D4rk - Fr 24.08.07 19:21
ich werde es als string lassen, mir scheint als wenn das was darüber steht, dazu dient die umwandlung von array of char in string vorzunehmen, und ich denke, dass das mit dem string schon so ok ist.
Spätestens beim Testen werde ich feststellen obs stimmt, danke ;)
mfg
arj - Fr 24.08.07 22:38
Das würde ich nicht machen. Ich nehme an das du weißt, dass es da einen Signifikanten Unterschied gibt.
Der Delphi-String ist ähnlich dem VB-String und hat NICHTS mit dem Array of Char zu tun.
Aus dem Grund wird ja genau ein Marshalling gemacht wie du richtig erkannt hast.
Deine Variante wird deshalb zu Fehlern führen. String zu verwenden ist also definitiv falsch!
F34r0fTh3D4rk - Sa 25.08.07 12:57
aber im vb code steht doch string, wie soll ich es denn an anderen stellen machen, an denen string einfach so verwendet wird ?
mfg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!