![]() |
Pointer nach array of Byte
Hi, wie kann ich Pointer nach array of Byte konventieren?
Da ich
Code:
nicht benutzen kann, habe ich in meine procedure MeinBuf:array of Byte eingefügt.
type
MeinBuf : array of Byte; Ich zeig mal einen Ausschnitt aus meinem quelltext:
Code:
[/code]
procedure Test (MeinBuf : array of Byte)
var P : Pointer; B : Byte; begin MeinBuf := P; // Hier ist mein Problem B := buf[24]+(buf[25] shl 8)+buf[26]; end; |
Moin Tillmann,
erst einmal herzlich willkommen. Eine Typdeklaration wird nicht mit : sondern mit = zugewiesen.
Delphi-Quellcode:
Wenn Du es dann so machst:
type
MeinBuf = array of Byte;
Delphi-Quellcode:
dann funktioniert's (wobei mir im Moment ein Rätsel ist, was das soll ;-) , aber wird wohl am beispielhaft gewählten Ausschnitt liegen)
procedure Test(MB : MeinBuf);
var P : Pointer; begin MB := P; end; |
Ja, vielen dank, dieser code ist eine vorgabe von einer delphicomponente, aber ich kann diesen nicht benutzen, da ich einen anderen compiler benutze, desswegen wollt ich fragen ob es noch ne andere möglichkeit als mit type gibt.
Wenn ich das array of in eine procedur tue, dann klappt es. Hättest du sonst noch eine idee? |
Moin Tillman,
im Moment leider nicht, bzw. was ich mir überlegt habe funktioniert nicht wie gewünscht :? Zum einen: Was soll genau passieren? Zum anderen: Wieso kannst Du ein dynamisches Array aufbauen, aber keinen Typ eines dynamischen Arrays erstellen? Was ist das für ein Compiler? |
Ganz einfach: ich habe den C++Builder2 von Borland worin ich auch delphi componenten installieren kann und pascal units kann ich auch in mein proggy mit einfügen, vielleicht hilft es dir ja, wenn ich dir einen kleinen teil der compo schicke, die ich verwenden will, ich kann sie halt nur nicht verwenden, da mein builder unter
type Buf = array of Byte; nen fehler anzeigt das er [ erwartet(er kennt kein dynamisches array) aber das komische an der sache ist, unter var kann ich auch nicht buf:array of Byte benutzen, aber wnen ich das in ne procedure setze geht das... Hier mal mein code
Code:
PS: Schönes Forum und danke für deine mühe
type
ByteArray = array of Byte; //Mein Prob private FData:Pointer; procedure Laden; var buf: ByteArray; begin buf := ByteArray(nil); buf := ByteArray(FData); BPP := buf[12]; DataSize := buf[14] + (buf[15] shl 8) + (buf[16] shl 16) + (buf[17] shl 24); ... end; |
Moin Tillmann,
das ist als Typangabe in der Prozedur auch kein dynamisches Array, sondern ein offener Array Parameter (unter dem Stichwort könnte auch die Hilfe von C++ etwas hergeben). Das heisst, es kann ein beliebig grosses, statisches (!), Array übergeben werden. Wenn ich nicht sehr irre, sind der C++ Builder 2 und Delphi 3 ungefähr zeitgleich erschienen, und D3 kennt auch keine dynamischen Arrays (wie wir hier gerade letzte Woche feststellen konnten). Um an dynamische Arrays zu kommen heisst's dann also selberbasteln und verwalten :? |
hm... schade, aber vielen dank, muss ich mir meine componente halt in c++ übersetzen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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