Seite 1 von 1
external Vars
Verfasst: 28.06.2018 15:33
von Joshua314
Guten Tag Zusammen,
ich schreibe hier in Pure eine DLL für ein Visual C Programm.
Meine Frage, gibt es eine Möglichkeit in Purebasic eine Variable "External" zu deklarieren ????
Nach Auskunft eines C C++ C# Programmierer kann ein DLL auf die Variablen der Exe zugreifen.
Gibt es hier auch einen weg ????
Gruß Thomas
Re: external Vars
Verfasst: 28.06.2018 15:56
von NicTheQuick
Ehrlich gesagt würde ich dem C/C++ Programmierer keinen Glauben schenken. Ich wüsste nämlich nicht wie das gehen sollte. Die DLL weiß ja zum Glück gar nichts über das ausführende Executable, zumindest bis dieses Funktionen der DLL aufruft und irgendwas übergibt. Kompiliert gibt es ja nicht mal mehr Variablennamen, nur noch irgendwelche Speicheradressen. Und Dank Stackverwürfelung weiß man nie wo die Variable nun ist.
Beschreibe mal bitte genauer, was du vorhast. Oder lass dir mal einen Beweis schicken, dass das wirklich geht ohne der DLL explizit Speicherbereiche zur Laufzeit zu übergeben.
Re: external Vars
Verfasst: 28.06.2018 16:40
von mk-soft
Eigendlich nur über eine Deklaration der Parameter von der DLL-Funktion als "ByReF"
Code: Alles auswählen
;-TOP
ProcedureCDLL MyFunction(*fltVal.float, *dblVal.double)
Protected r1.s
r1 = "Float ByRef: " + StrF(*fltVal\f) + #LF$
r1 + "Double ByRef: " + StrD(*dblVal\d)
MessageRequester("DLL MyFuntion", r1)
*fltVal\f + 100.0
*dblVal\d + 200.0
EndProcedure
Re: external Vars
Verfasst: 02.07.2018 22:30
von Joshua314
Guten Abend zusammen,
puhhh einfach gesagt, ihr habt beide(MK-Soft, NickTheQuick) Recht. Mein Tipp Geber lag total falsch.
Ich hab ich jetzt selbst mal auch schlau gemacht.
Klar ich muss die Adressen mit dafür geeignete Proceduren übergeben.
Ich hab danach mit ihm nochmals gesprochen.
Meinte er Sei etwas zulange in C# unsterwegs und hat es mit USING verwechselt....
Aber danke euch beiden für die Antwort.
Gruß Thomas