AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Gleiche DLL im selben Prozess mehrfach laden?
Thema durchsuchen
Ansicht
Themen-Optionen

Gleiche DLL im selben Prozess mehrfach laden?

Ein Thema von nuclearping · begonnen am 4. Jul 2008 · letzter Beitrag vom 5. Jul 2008
 
Benutzerbild von Lossy eX
Lossy eX

Registriert seit: 7. Aug 2007
113 Beiträge
 
#21

Re: Gleiche DLL im selben Prozess mehrfach laden?

  Alt 4. Jul 2008, 14:17
Wäre es da nicht evtl. einfacher die DLL so zu strukturieren, dass der gleichzeitige Zugriff aus einer Anwendung funktioniert? Also keine globalen Variablen innerhalb der DLL verwenden und damit ist meistens schon ein Großteil getan.

Typischerweise kann man so etwas dann so lösen, dass die Objekte als Parameter übergeben werden. Entweder per ID oder sogar direkt den Pointer. Ich kenne jetzt die Schnittstelle nicht weswegen ich da kein wirklich sinnvolles Beispiel nennen kann. Aber ich denke an nachfolgendem Pseudo-Code dürfte das Prinzip klar werden.
Code:
net_connect(ip, port): pointer;
net_close(net: pointer);
net_read(net: pointer; ...);
net_write(net: pointer; ...);


// Das Innere der Methoden könnte dann so aussehen.
net_connect(ip, port): pointer;
begin
  Result := TNetConnection.Create(ip, port);
end;

net_close(net: pointer);
begin
  TNetConnection(net).Close;
  TNetConnection(net).Free;
end;

net_read(net: pointer; ...);
begin
  TNetConnection(net).Read;
end;
Vorteil davon wäre, falls sich was an den Klassen verändert bleiben sie kompatibel, da ja alles innerhalb der DLL abgewickelt wird. Evtl kann man dem Kompfort zu liebe dann auch noch eine Wrapperklasse erstellen. Das ist sicher etwas mehr Aufwand aber ich denke das wäre die solideste Lösung.
Ich habe ja keine Vorurteile gegenüber Autofahrern ... aber Fahrer von BMW und Mercedes bestätigen diese regelmäßig.
Außerdem neue technologische Errungenschaften: Serienmäßig eingebaute Rechtsfahrsperre und der stromsparende Blinker.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz