![]() |
DLL: ShortString oder ShareMem für String, WideString,...
Hallo,
ich hab letztens wieder mit DLL´s gearbeitet und bin wieder über die Strings geflogen. Leider ist mir immer noch nicht ganz klar, wann man ShareMem braucht und wann nicht. Wenn ich das richtig verstanden habe, braucht man ShareMem wenn man die Delphi-Strings verwenden will (String, WideString, ...). Mann/Frau braucht es aber nicht, wenn man ShortString verwendet. Richtig oder falsch? ShortStrings haben aber den Nachteil dass sie nur 255 Zeichen lang sind. |
Re: DLL: ShortString oder ShareMem für String, WideString,..
Hallo,
da DLL und Exe sich den Speicherbereich teilen, wenn auch nicht unbedingt den Speichermanager, kannst du auch mit PChars arbeiten. Das ist ein Pointer auf den ersten Char eines Strings. Der String muss natürlich dann solange alloziiert bleiben, bis das andere Modul mit ihm durch ist (für Funktionsrückgaben etc.). |
Re: DLL: ShortString oder ShareMem für String, WideString,..
Hallo,
wie würde eine Übergabe mit PChars funktionieren? so z. B. DLL?:
Delphi-Quellcode:
[edit]
function GetString(S: PChar): PChar; stdcall;
begin Result := S; end; DGL-luke wollt ja umbedingt die "s" an den PChars weghaben :-) [/edit] |
Re: DLL: ShortString oder ShareMem für String, WideString,..
Jop. aber das s am Ende von PChar weg ;-)
|
Re: DLL: ShortString oder ShareMem für String, WideString,..
Und im Programm beschreib ich ein PChar (ohne "s" :-) ) wie einen String?
|
Re: DLL: ShortString oder ShareMem für String, WideString,..
Du kannst einen PChar fast genau so verwenden wie einen String, allerdings sind die Funktionen length (dafür gibts strlen), pos, delete usw. für Ansistrings ausgelegt. Am besten macht man irgendwann eine Konvertierung in eine Ansistring (StrPas).
|
Re: DLL: ShortString oder ShareMem für String, WideString,..
Ich konvertier jetzt von String auf PChar mit
"PAnsiChar()" |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 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