![]() |
String aus Pointer ermitteln?
Hallo,
aus einer DLL-Anfrage erhalte ich folgende Recordstruktur zurück:
Delphi-Quellcode:
In PBlob soll ein RTF-Text stehen, wie bekomme ich den aus dem Record?
TDLLRec = record
Nr : String[3]; BlobSize : Integer; PBlob : Pointer; end; Danke Ciao Stefan |
AW: String aus Pointer ermitteln?
Kommt drauf an, ob der Text in Ansi, UTF-8 oder Unicode (oder sonstwas) codiert ist. Einfach mal schauen was bei
Delphi-Quellcode:
,
PAnsiChar(PBlob)
Delphi-Quellcode:
und
PUTF8Char(PBlob)
Delphi-Quellcode:
rauskommt.
PChar(PBlob)
|
AW: String aus Pointer ermitteln?
Wenn es ein String ist und der Record+DLL von dir stammen, dann statt Pointer ein WideString verwenden.
WideString ist der BSTR von Windows ( ![]() Ansonsten mußt du halt casten (siehe Uwe), oder umkopieren, z.B. ![]() PChar und String wolltest du hier gleich vergessen, denn modulübergreifend sollte man immer nur mit statischen/festen Typen arbeiten. String, Char und PChar sind tabu. (also AnsiString, UnicodeString, WideString, PAnsiChar, PWideChar, ...) Integer/NativeInt könnte man auch mit auf die Liste setzen und dafür LongInt verwenden, aber da eine 32 Bit-DLL nicht in einem 64 Bit Programm läuft, wäre es fast egal, aber wenn es z.B. um Prozessübergreifende Datenübertragung/-speicherung geht, dann das auch nicht. |
AW: String aus Pointer ermitteln?
Danke, das hatte ich auch schon, aber der Inhalt des Blob war kaputt, da konnte ich lange suchen...
Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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