Genau wie bei Objekten. da erzeugt man auch eine Instanz und arbeitet mit dieser. Entsprechend kannst du (wie es in der Windows-
Api häufig der Fall ist) einfach eine Struktur übergeben die von der
DLL gehandhabt wird.
Bsp. (außerhalb der
DLL):
Delphi-Quellcode:
type
TTolleStruktur = packed record
[...]
end;
PTolleStruktur = ^TTolleStruktur;
var
meineStruktur: TTolleStruktur;
begin
dll_function_init(@meineStruktur);
dll_machwas(@meineStruktur);
[...]
also einfach jedem Funktionsaufruf wo bisher die gloable verwendet wurde entsprechende Struktur mitgeben.
Im übrigen hat man das Problem nicht nur bei DLLs sondern auch bei Objectorientierter Programmierung (wenn mehrere Instanzen auf die gleiche globale zugreifen) etc.
Und genau aus diesem Grund sind globale Variablen auch so verpönt.