[SOLVED] Return String bei einer DLL benutzen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

[SOLVED] Return String bei einer DLL benutzen

Beitrag 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
Zuletzt geändert von R3booz am 22.01.2013 17:03, insgesamt 1-mal geändert.
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Return String bei einer DLL benutzen

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

Re: Return String bei einer DLL benutzen

Beitrag von R3booz »

Ok vielen Dank :)
Das mit dem Speicher bekomm ich hin

mfg R3booz
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Antworten