![]() |
Delphi-Version: XE7
TypeInfo() bei Attributen
Liste der Anhänge anzeigen (Anzahl: 2)
Das ist ein Bug, oder?
![]() Zitat:
Delphi-Quellcode:
füttere sollte er das auch erhalten. Tatsächlich erhält er einen Zeiger der um 4 Byte (32 Bit) bzw. 8 Byte (64 Bit) zu niedrig ist.
TypeInfo(Single)
Getestet mit XE7 und XE8. Seht ihr das auch so, dass das ein Fehler ist? Beispielprojekt im Anhang. Haltepunkt auf den Anfang des Konstrktors
Delphi-Quellcode:
setzen und wundern.
constructor IsAliasForAttribute.Create(const originalType: Pointer);
begin inherited Create(); PByte(self.originalType) := PByte(originalType) + SizeOf(Pointer); // The "+SizeOf(Pointer)" should not be necessary end; Danke im Voraus fürs Mitfiebern. |
AW: TypeInfo() bei Attributen
Nimm halt den richtigen Typen für den ctor Parameter (PTypeInfo), dann klappts auch. ;)
Der entsprechende Code, der zu deinem Fehler führt, befindet sich in der System.Rtti.pas in der Funktion ConstructAttributes Zeile 4519 (XE8) - da wird nämlich für Params vom Typ PTypeInfo anders verfahren, als für andersartige Pointer. Und somit bekommst du den PPTypeInfo rein. Kannst auch testen, indem du deine Funktion entsprechend änderst. P.S. Wusst ich übrigens bisher auch noch nicht, aber ich kann ja Delphi Sourcecode lesen :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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 by Thomas Breitkreuz