AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dynamischen Record mir sendbuff (TServerSocket) versenden
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamischen Record mir sendbuff (TServerSocket) versenden

Ein Thema von Jackie1983 · begonnen am 24. Mär 2008 · letzter Beitrag vom 25. Mär 2008
Antwort Antwort
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#1

Re: Dynamischen Record mir sendbuff (TServerSocket) versende

  Alt 24. Mär 2008, 17:41
Hi Jackie,

dir auch Frohe Ostern.

Dynamisch wäre dein Record dann, wenn du den benötigten Speicherplatz explizit zur Laufzeit anfordern würdest - tust du aber nicht.

Weiter enthält dein Record zwei ShortStrings, die du fix auf 11 und 2 Byte dimensioniert hast - jeweils das erste Byte enthält die tatsächlich benutzte Anzahl von Zeichen, die du mittels Length() abfragen und mittels SetLength() festlegen kannst.

Groben Unfug treibst du, wenn die Länge deines dParam mittels SetLength() auf vier setzt, durch die vorherige statische Dimensionierung aber nur maximal ein Byte nutzbarer Speicher festgelegt wurde. Beim Zugriff auf dParam wird dann ein Speicherbereich gelesen bzw. geschrieben, der eigentlich Variablen beherbergt, die vom Übersetzer direkt "hinter" deinen Record gelegt wurden.

Ahnst du schon etwas?

Durch die übliche Speicherausrichtung kannst du gerade noch drei zusätzliche Bytes in deinen Record packen, bevor der Zeiger auf s, der gleich anschließend gespeichert ist, von deiner Zuweisung an dParam überschrieben wird.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 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