![]() |
Delphi-Version: XE8
Multiplatform und System.Typinfo
Kann es sein das System.Typinfo nicht ganz das Richtige ist, wenn die App auf verschiedenen Systemen laufen soll?
Ist es besser auf die RTTI Unit auszuweichen? Ist es ok Funktionen wie PByteTostring zu benutzen, um die Typinfo weiter verwenden zu können?
Delphi-Quellcode:
function PByteToString(FData:PByte): string; // kopie von System.TypInfo.TTypeInfoFieldAccessor.ToString
var Dest: array[0..511] of Char; begin if FData^ <> 0 then SetString(Result, Dest, UTF8ToUnicode(Dest, Length(Dest), MarshaledAString(FData+1), FData^)-1) else Result := ''; end; |
AW: Multiplatform und System.Typinfo
Was ist mit Typinfo?
|
AW: Multiplatform und System.Typinfo
Im NextGen compiler ist
PPropInfo^.Name vom Typ Byte. das selbe gilt für PPropInfo^.PropType^.Name muss da solche aufrufe machen:
Delphi-Quellcode:
, damit es klappt.
Result := PByteToString(@(fPropInfo^.PropType^.Name)) ;
Also gibts keine Zukunftsrisiken beim verwenden dieser Unit? |
AW: Multiplatform und System.Typinfo
Einfach die Funktionen der RTTI.pas versenden und garnicht selber auf die internen Strukturen zugreifen. :stupid:
Oder du gehst über TEncoding.UTF8, aber leider sind auch da die Pointeraufrufe schön versteckt, so daß du es erstmal in ein TBytes umkopieren mußt. Ja, es ist Mist und etwas umständlich, da man ANSI rausgeworfen hat, wobei Emba selbst gemerkt hat, daß sie es intern doch noch benötigen. (nur ohne Andreas können/dürfen wir die vorhandenen ANSI-Funktionen garnicht benutzen) ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 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