![]() |
Dynamisches Array von DLL übergeben
Hallo,
habe schon seit längerem ein kleines Problem. Ich habe eine Funktion und weiß nicht, wie ich ein Array aus einer DLL-Funktion an die Hauptapplikation übergeben kann. Dabei benutze ich nicht den Delphi-Speichermanager, sondern versuche das so zu regeln, was bei den Array auch nicht klappt - sonst schon! danke Leute!! |
Re: Dynamisches Array von DLL übergeben
Zitat:
Lass doch den Client den Speicher alloziieren. |
Re: Dynamisches Array von DLL übergeben
Zeig mal ein bischen Code was du sonst so machst und wie du es beim Array machen willst
|
Re: Dynamisches Array von DLL übergeben
Habe in der DLL eine Funktion (meine eigene Explode-Funktion). Da geteilten Strings möchte ich dann in ein Array packen und von da aus an die Hauptanwendung schicken. Meine Explode-funktion (auszug):
Delphi-Quellcode:
Hatte vorher den String "s" übergeben und das hat alles supeer funktioniert. Nur ich weiß nicht, wie ich die Speicheranforderung per Array machen soll. So hatte ich den Speicher für den String "s" angefordert (Anwendung)
for i:=0 to sl.Count-1 do
begin for j:=StrToInt(sl2.Strings[i]) to StrToInt(sl.Strings[i])-1 do begin s:=s+p[j]; end; SetLength(Content, i); content[i]:=s; end; .... if Assigned(Buffer) then begin StrLCopy(Buffer, PChar(content), BufferLen); end; result:=length(s);
Delphi-Quellcode:
Danke!
len:=Explode(nil, PChar(Source), PChar(Separator), 0);
try GetMem(Buffer, len+1); len:=Explode(Buffer, PChar(Source), PChar(Separator), len+1); s:=String(Buffer); finally FreeMem(Buffer); end; |
Re: Dynamisches Array von DLL übergeben
Dynamische Arrays kannst du mit setLength vergrößern/verklenern (Speicher anfordern/freigeben)
|
Re: Dynamisches Array von DLL übergeben
Ja schon klar. Nur wie kann ich das DynArray als Rückgabewert einer Funktion aus einer DLL in die Hauptanwendung nutzen?
|
Re: Dynamisches Array von DLL übergeben
Ich denke ohne gemeinsamen Speichermanager ist das AFAIK nicht sicher möglich.
Ansonsten mußt du mit C-Like Arrays und direkte Speicheranforderung/Freigabe von Windows arbeiten. |
Re: Dynamisches Array von DLL übergeben
hm...
oder ich muss den schritt halt aufteilen: Die Funktion gibt mir lange Strings zurück, die ich in der Hauptanwendung in diese dann dort in Array packe. Finde ich zwar nicht so schön, aber so solls halt erstmal sein. Danke euch. Aber wenn's noch Vorschläge gibt, nehm ich sie gerne an! |
Re: Dynamisches Array von DLL übergeben
Das hilft dir jetzt sicherlich nicht direkt weiter, aber ich hab genau für den Fall heute etwas in der Delphi Hilfe gesehen! Nur weiss ich leider nicht mehr wo :roll:
|
Re: Dynamisches Array von DLL übergeben
Hm...
das ist gut und schlecht. Ich hab grad gesehen. Brauche es echt dringend. Nur wenn du nicht mehr weißt wo, dann hilft mir das wirklich nicht. Brauch aber die Lösung... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 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