external Vars

Für allgemeine Fragen zur Programmierung mit PureBasic.
Joshua314
Beiträge: 115
Registriert: 06.04.2005 22:44

external Vars

Beitrag 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
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: external Vars

Beitrag 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.
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: external Vars

Beitrag 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

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Joshua314
Beiträge: 115
Registriert: 06.04.2005 22:44

Re: external Vars

Beitrag 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
Antworten