AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread un dDLL

Ein Thema von gargano · begonnen am 15. Mai 2009 · letzter Beitrag vom 15. Mai 2009
Antwort Antwort
gargano

Registriert seit: 2. Okt 2006
76 Beiträge
 
Delphi 2007 Enterprise
 
#1

Thread un dDLL

  Alt 15. Mai 2009, 12:25
Hi Leute,

wahrscheinlich ist dies auch schon mal behandelt worden, ich habe es leider nicht gefunden.

Frage : Wenn man mehrere Threads erzeugt und jeder der Thread die gleiche DLL lädt, sind dann diese DLL's im Speicher getrennt ?

Viele Grüße
Gargano
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Thread un dDLL

  Alt 15. Mai 2009, 12:31
Nein. Windows-Threads haben keinen getrennten Adressraum!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
gargano

Registriert seit: 2. Okt 2006
76 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:00
mmh,
was wäre denn ein geeigneter Ansatz um DLL's gleichen Namens in unterschiedlichen Speicherbereichen zu laden ?

Im gleichen Process scheint ja dies nicht zu gehen.

Gruß
Gargano
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:04
Wie wäre es die DLL so zu erweitern das sie mit mehreren Connection arbeiten kann.
Z.B. mit einer Init und Close-Methode die eine ID zurückliefert und auch diese wieder freigibt. Jede Funktion der DLL erwartet als ersten Parameter diese ID so das intern unterschieden werden kann mit welche Connection gearbeitet wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:04
Zitat von gargano:
was wäre denn ein geeigneter Ansatz um DLL's gleichen Namens in unterschiedlichen Speicherbereichen zu laden ?

Im gleichen Process scheint ja dies nicht zu gehen.
Denk mal über deinen letzten Satz nach, da steckt doch schon die Lösung drin.

Aber warum dürfen die Instanzen der DLL nicht den gleichen Adressraum benutzen? Ich denke, du solltest dein Konzept überdenken und entsprechend ändern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:06
Und wenn man aus dieser ID einen Interfacezeiger macht ist man endlich bei OOP angekommen. Und DLL und Interface, da könnte man gleich über COM-Server nachdenken. Dann ist die ganze Sache gänzlich abgerundet.
Die Leute, welche das COM-Konzept entworfen haben, hatten sich anscheinend die gleichen Gedanken gemacht.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:13
Zitat von sirius:
Und wenn man aus dieser ID einen Interfacezeiger macht ist man endlich bei OOP angekommen. Und DLL und Interface, da könnte man gleich über COM-Server nachdenken. Dann ist die ganze Sache gänzlich abgerundet.
Die Leute, welche das COM-Konzept entworfen haben, hatten sich anscheinend die gleichen Gedanken gemacht.
Und dann versuchen zwei verschiedene Versionen der Anwendung parallel berteiben zu wollen und über die DLL-Hölle fluchen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
gargano

Registriert seit: 2. Okt 2006
76 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:16
@Bernhardt : Das habe ich in meiner DLL so gemacht.

Allerdings ist es so, daß das Programm verschiedene Geräte steuern muß.
Die Routinen zu den Geräten stellt der Hersteller in einer DLL bei.

Alles ist gut, wenn nur ein Gerät von derselbe Art angeschlossen ist.
Problem ist, wenn mehrere Geräte derselben Art angeschlossen sind, die allerdings
auf verschiedenen Ports liegen -> Die DLL ist diegleiche.

Falls nun diese DLL nicht die Fähigkeit hat mehrere Geräte zu bedienen, was dann ?

Gruß
Gargano
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:18
Zitat von gargano:
Falls nun diese DLL nicht die Fähigkeit hat mehrere Geräte zu bedienen, was dann ?
Nicht davor zurückschrecken auch mehrere Prozesse zu starten
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Thread un dDLL

  Alt 15. Mai 2009, 13:28
Zitat von gargano:
Falls nun diese DLL nicht die Fähigkeit hat mehrere Geräte zu bedienen, was dann ?
Erst mal den Hersteller auf den Mangel aufmerksam machen und wenn er nix macht diese DLL jeweils umbenennen und hoffen das nicht andere Ressourcen Probleme bereiten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:14 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