![]() |
Thread un dDLL
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 |
Re: Thread un dDLL
Nein. Windows-Threads haben keinen getrennten Adressraum!
|
Re: Thread un dDLL
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 |
Re: Thread un dDLL
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. |
Re: Thread un dDLL
Zitat:
Aber warum dürfen die Instanzen der DLL nicht den gleichen Adressraum benutzen? Ich denke, du solltest dein Konzept überdenken und entsprechend ändern. |
Re: Thread un dDLL
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. |
Re: Thread un dDLL
Zitat:
|
Re: Thread un dDLL
@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 |
Re: Thread un dDLL
Zitat:
|
Re: Thread un dDLL
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 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