![]() |
Re: Wie bekomme ich einen Zeiger auf ein dynamisches Array ?
So .. muss mich entschuldigen, aber hätte das ganze wohl kopieren und nicht abtippen sollen ... natürlich sind die Datentypen gleich .. also nochmals korrigiertes erstes Posting.
@mkinzler: siehe Posting #5 @data = @data[0] (kann man im Debugger auch ganz leicht ausprobieren indem man beides jeweils an einen Pointer zuweist) z.B.:
Delphi-Quellcode:
..
p1 = @data; p2 = @data[0]; if (p1 <> p2) Then raise exception.create('p1 <> p2'); |
Re: Wie bekomme ich einen Zeiger auf ein dynamisches Array ?
Warum übergibst du es nicht:
a) als var Parameter und hast somit automatisch einen Zeiger. Wenn es sich (wie hier vermutet) um einen DLL Aufruf handelt, dann kannst du den Prototypen in der App entsprechend mit Var deklarieren und in der DLL mit pointer implementieren b) als typenlosen Var Parameter c) als reiner Pointer |
Re: Wie bekomme ich einen Zeiger auf ein dynamisches Array ?
Delphi-Quellcode:
das ist wohl sinnfällig. Richtg so
Type
PLongword = ^TLongword; TLongword = Array Of Longword;
Delphi-Quellcode:
What you say is what you get :=)
type
PLongWordArray = ^TLonagWordArray; TLongWordArray = array[0..MaxInt / 4 -1] of LongWord; // <-- man beachte kein dynamisches Array PLongWord = PLongWordArray; // <-- PLongWord sollte normalerweise ein Zeiger auf ein LongWord sein und nicht auf ein Array[] of LongWord !! Umwandlung eines dynm. Arrays in einen Zeiger auf das statische Array dann mit @Data[0], also immer auf das erste Element. Bei einem 2D-dyn.array dann also @Data[0, 0] usw. Gruß Hagen |
Re: Wie bekomme ich einen Zeiger auf ein dynamisches Array ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 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-2025 by Thomas Breitkreuz