AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C-Structure in Delphi

Ein Thema von oki · begonnen am 11. Jun 2003 · letzter Beitrag vom 24. Jun 2003
Antwort Antwort
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1
  Alt 16. Jun 2003, 07:53
Hi Leute,

so wie es aussieht hat jbg recht. Der von Christian beschriebene Thread war auch von mir mit einem ähnlichen Problem wie jetzt. Auch dort wurde von den C-Leuten die ganze Zeit was von 8-Byte Ausrichtung gefaselt und wir haben es mit D5 auf normalem Wege hinbekommen.
Das Problem scheint hier wirklich in der Anordnung der einzelnen Elemente im Record und deren Ausrichtung sowie Länge zu liegen. Die Frage ist nur an welcher Stelle. Ich werde jbg ein zip-File mit den DLL's sowie den Daten auf Privatnachricht zusammenstellen. Da dort Lizenzrechte drauf sind die bezahlt werden müssen möchte ich es nicht so öffentlich machen. Sollte jemand sonst noch ernshaft testen wollen reicht eine kurze Info. Ich schicke das Zeug dann. Über unsere Erfolge und Mißerfolge halte ich in diesem Thread aber auf dem laufenden, damit er vollständig bleibt un jemandem mit ähnlichen Problemen ausreichen Infos zur Lösung bietet.
Ich gehe sowiso davon aus, das die Diskussion in diesem Thread erfolg und nicht über PN.

So, nun mal was zu euren Antworten.

Dank an Christian für den Zitat-Tip.

Hi jbg,
wenn durch die arrays 2 Byte bei packed verlorengehen und davon 3 vorhanden sind

nPrioritaet[7]
nGeschwindigkeit[7]
nVerbrauch[7]

warum gehen dann in der gesamten Struktur nur 2 Byte und nicht 6 Byte verloren?

Ich habe über CPU-Debuging festgestellt, dass bei der Angabe
   nPrioritaet : array[0..7] of short; im Speicher alle Elemente von nPrioritaet innerhalb des Records hintereinander stehen und nicht über Zeiger an einer anderen Stelle. So müßte sich ein Packed doch eigentlich mit einer Kürzung der Länge der Struktur auf 7 * 2 auswirken. Das natürlich für jedes array. Die Frage ist zusätzlich noch, ob sich ein packed record gleichlautend auf die im Record befindlichen array's auswirkt oder diese bei globalem Compilerschalter $A nicht gepackt werden. Müßte mann hier dann folgendes schreiben um auch diese gepackt zu erhalten?
Delphi-Quellcode:
  TRW_Fahrzeug = packed Record
   .
   .
   nPrioritaet : packed array[0..7] of short;
Das jetzt nur mal zur Theorie. Ich hab schon verstanden, dass du packed nicht haben willst.

O.K., ich werd jetzt mal die DLL's und Daten zusammenschaufeln.

Gruß oki
  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 03:54 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