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
external Vars
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- 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
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.
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
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
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: external Vars
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
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