![]() |
Byte-Array per PByte übergeben
Hi, ich möchte einer Funktion einen Bytearray per PByte übergeben und dann als Array behandeln.
Hier meine Funktion:
Delphi-Quellcode:
Jetzt bekomm ich aber einen Fehler in der Zeile, der besagt, dass ein Arraytyp erwartet wird.
function blubb(a:pbyte):integer;
begin a^[0] := 1; end; Kann mir jemand helfen? |
Re: Byte-Array per PByte übergeben
Delphi-Quellcode:
Ansonsten, falls du echt PByte bekommst, caste einfach nach PByteArr, ala PByteArr(a). :thumb:
type
PByte = ^Byte; // dies ist so definiert // Was du suchst sollte so aussehen: ByteArr = array of Byte; PByteArr = ^ByteArr; |
Re: Byte-Array per PByte übergeben
Hi Marcel, danke aber das bringt mich nicht wirklich weiter! Was ich brauche ist eine Lösung wie die eine Zeile die ich modifiziert habe
korrigiert werden kann sodass sie funktioniert. Ich kann leider nicht den Parameter oben ändern. |
Re: Byte-Array per PByte übergeben
Siehe mein Edit.
Delphi-Quellcode:
function blubb(a:pbyte):integer;
begin PByteArr(a)^[0] := 1; end; |
Re: Byte-Array per PByte übergeben
Hi,
da aber dynamische Arrays bereits Pointer sind, schlage ich das vor:
Delphi-Quellcode:
Ich benutze es in ähnlicher Weise selbst für das Sortieren beliebiger Array-Typen, wenn ich einfach nur nen Pointer als formalen Parameter in der Vergleichs-Funktion habe. Siehe dazu auch den Beitrag zu Shellsort für beliebige Arrays in der Code-Lib.
function blubb(a:pbyte):integer;
begin TByteArr(a)[0] := 1; end; Gruß Michael [Edit] Du kannst dir type TByteArr = array of Byte auch zwischen dem Funktions-Kopf und begin lokal definieren, wenn das in deinem Fall sinnvoll ist. [/Edit] |
Re: Byte-Array per PByte übergeben
Ah das hilft, vielen Dank euch beiden :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz