Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: DLL mehrfach im Programm verwenden

  Alt 19. Jan 2009, 21:04
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat