Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Golbale Variable in DLL und Hauptanwendung (https://www.delphipraxis.net/116951-golbale-variable-dll-und-hauptanwendung.html)

Viktorii 9. Jul 2008 09:10


Golbale Variable in DLL und Hauptanwendung
 
Ich möchte eine Bool-Variable in einer DLL auswerten, welche in meiner Hauptanwendung zur Laufzeit geändert wird. Dazu habe ich diese Variable als globale Variable in einer Unit deklariert, welche ich sowohl in meiner Hauptanwendung als auch in meiner DLL eingebunden habe.
Wenn ich mir im Debugger in meiner DLL und in meiner Hauptanwendung Breakpoints setze und mir die Adresse der Variable anschaue, sind diese in der DLL und der Hauptanwendung identisch.
Dennoch scheint der (geänderte) Wert nicht in DLL anzukommen.
Wie kann ich das bewerkstelligen? Die SuFu hat mir leider nicht helfen können...
Vielen Dank.

DelphiKlaus 9. Jul 2008 09:46

Re: Golbale Variable in DLL und Hauptanwendung
 
Hallo,

auch wenn Du eine Variable in einer Unit als global vereinbarst und die Unit im Programm und der DLL einbindest, hast Du damit keine gemeinsame Variable. Du musst die Variable als Parameter an eine DLL-Funktion übergeben oder einen anderen Kommunikationsmechanismus wie z.B. Shared Memory nutzen.

MfG

Klaus

Apollonius 9. Jul 2008 10:58

Re: Golbale Variable in DLL und Hauptanwendung
 
Eine andere, selten genutzte Möglichkeit besteht darin, die Variable zu exportieren. Das geht in der DLL ganz normal mit dem exports-Abschnitt. Allerdings unterstützt Delphi nicht den Import von Variablen. Da kannst du entweder tricksen, indem du eine Routine importierst, sie aber als Variable behandelst, oder dir mit GetProcAddress einen Zeiger holen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz