![]() |
Arbeiten mit PChar
Hallo,
ich habe hier eine Funktion die als Parameter den Typ PChar erwartet:
Delphi-Quellcode:
Angenommen ich habe jetzt einen String den ich nach "Dest" umwandeln will dann funzt nicht:
function Translate(Src, Dest: PChar; ToOem: Boolean): Integer; virtual;
Delphi-Quellcode:
Bekomm ich eine Speicherzugriffsverletzung...
procedure test;
var srcString, DestString: PChar; begin srcString:= ...; Translate(PChar(srcString), DestString, false); end; wie müsste es denn richtig heißen? Gruß Gambit |
Re: Arbeiten mit PChar
Du musst für deinen DestString natürlich auch erst noch Speicher mit GetMem reservieren.
|
Re: Arbeiten mit PChar
Zitat:
Delphi-Quellcode:
Da SrcString schon vom Typ PChar ist, muss er nicht mehr nach PChar gecastet werden.
Translate(srcString, DestString, false);
MfG Binärbaum |
Re: Arbeiten mit PChar
Zitat:
|
Re: Arbeiten mit PChar
Zitat:
|
Re: Arbeiten mit PChar
Zitat:
Delphi-Quellcode:
In deinem Fall ist das aber anders, da zur Kompilierzeit noch nichts zugewiesen wird. Daher musst du erst genug Speicher reservieren, in dem dann dein String Platz findet. Also etwa so:
var
str: PChar; begin str := 'Beispieltext'; end;
Delphi-Quellcode:
var
SrcStr, DestStr: PChar; begin SrcStr := 'Beispieltext'; GetMem(DestStr, Length(SrcStr)); Translate(SrcStr, DestStr, False); // ...und am Ende nicht vergessen: FreeMem(DestStr); end; |
Re: Arbeiten mit PChar
jau Danke, jetzt hab' ichs begriffen. Funktion bringt bringt nur leider nicht das gewünschte Ergenbnis(der String sieht immer noch genauso aus)... :(
|
Re: Arbeiten mit PChar
Zitat:
|
Re: Arbeiten mit PChar
Moin!
Zitat:
MfG Muetze1 |
Re: Arbeiten mit PChar
Will Gambit es nicht einfach so :gruebel: ?
Delphi-Quellcode:
procedure test;
var srcString, DestString: string; begin srcString:='a'; DestString:='bb'; Translate(PChar(srcString), PChar(DestString), false); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 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