Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi LoadLibrary unter NT (https://www.delphipraxis.net/19406-loadlibrary-unter-nt.html)

Bernhard Geyer 2. Apr 2004 16:09


LoadLibrary unter NT
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ist eine Beschänkung bekannt, das unter Windows NT-Systemen eine Obergrenze bezüglich der mit LoadLibrary ladbaren DLL's vorhanden ist? Die DLL's sind überwiegend reine Resourcen-DLL's. Ab ca. 61 dynamisch geladenen DLL's kann unter NT keine weitere DLL mehr geladen werden (Library-Handle ist 0).

Christian Seehase 2. Apr 2004 17:22

Re: LoadLibrary unter NT
 
Moin Bernhard,

könnte es sein, dass der Hauptspeicherbedarf über 2GB steigt?
Wenn Du 0 zurückbekommst könntest Du ja mal diese Zeile
Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
aufrufen, und Dir anzeigen lassen, warum LoadLibrary fehlgeschlagen ist.

Wenn es sich ausschliesslich um Resourcen DLLs handelt könntest Du auch LoadLibraryEx mit der Option LOAD_LIBRARY_AS_DATAFILE benutzen.

Bernhard Geyer 2. Apr 2004 17:50

Re: LoadLibrary unter NT
 
Zitat:

könnte es sein, dass der Hauptspeicherbedarf über 2GB steigt?
Sollte nicht sein. Das Anhang-Beispiel kopiert die Test-DLL (40kByte) immer wieder um sie zu laden.
Auch können unter XP ca. 1000 verschiedene DLL's geladen werden (Am Beispiel Testbar).

Zitat:

Wenn es sich ausschliesslich um Resourcen DLLs handelt könntest Du auch LoadLibraryEx mit der Option LOAD_LIBRARY_AS_DATAFILE benutzen.
Damit können mehr DLL's geladen werden. Die DLL's sind zwar keine reine Test-DLL's aber das ist mit Sicherheit umsetzbar.

Grundsätzlich würde mich aber trotzdem interessieren ob hier eine NT-Schwäche vorliegt oder ein Delphi-Problem.

Christian Seehase 2. Apr 2004 18:32

Re: LoadLibrary unter NT
 
Moin Bernhard,

und welche Fehlermeldung kommt?
(unter NT kann ich das jetzt nicht testen)

Bernhard Geyer 3. Apr 2004 11:46

Re: LoadLibrary unter NT
 
Unter XP kommt:

Eine DLL-Initialisierungsroutine ist fehlgeschlagen

Unter NT kann ich es erst Montags wieder ausprobieren.

Bernhard Geyer 5. Apr 2004 08:05

Re: LoadLibrary unter NT
 
Unter NT kommt:

Initialisierung der DLL "..." gescheidert. Prozeß wird nicht normal beendet

und anschließend:

Eine DLL-Initialisierungsroutine ist fehlgeschlagen

Vermutlich kommt der erste Teil direkt vom Betriebssystem.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 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