Seite 1 von 1

[SOLVED] Return String bei einer DLL benutzen

Verfasst: 20.01.2013 18:04
von R3booz
Also ich möchte ein paar Daten in einer Dll speichern nehmen wir mal an das sieht so aus:
DLL

Code: Alles auswählen

Procedure.s daten()
daten.s = "Meine Daten"
ReturnString daten.s
EndProcedure
Programm

Code: Alles auswählen

OpenLibrary(0,"daten.dll")
daten.s = Callfunction(0,"daten")
Debug daten.s
CloseLibrary(0)
Aber warum kann ich nur das Ergebnis bekommen und warum geht das nicht mit returnString?
Ich hab auch das mit den Prototypen ausprobiert aber da bin ich nicht weiter gekommen :(

Kann mir jemand helfen? :|

mfg R3booz

Re: Return String bei einer DLL benutzen

Verfasst: 20.01.2013 18:18
von ts-soft
Eine DLL kann grundsätzlich keinen String direkt zurückgeben, sondern nur einen Pointer auf die Adresse.
Es ist also erforderlich den String aus dem Pointer per PeekS() zu ermitteln.

Der String, sollte in der DLL global deklariert sein und die DLL darf erst entladen werden, wenn man den String
gepeekt hat. Besser ist es, wenn man der DLL einen reservierten Memory übergibts, wo die DLL den String dann
reinpoked.

Such hier einfach mal nach DLL und Stringrückgabe, sollte viel zu finden sein.

Gruß
Thomas

Re: Return String bei einer DLL benutzen

Verfasst: 22.01.2013 17:02
von R3booz
Ok vielen Dank :)
Das mit dem Speicher bekomm ich hin

mfg R3booz