nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: Zwei Versionen von cygwin1.dll

Von: P.J.Meisch (news01@fentakyam.net) [Profil]
Datum: 20.11.2008 11:41
Message-ID: <49253ed6$0$31342$9b4e6d93@newsspool4.arcor-online.net>
Newsgroup: de.alt.comp.cygwin+co
Markus Gessner schrieb:
> Unter
>
> http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx
>
> steht, daß immer zuerst das Verzeichnis, in dem die Anwendung steht,
> durchsucht wird, aber das scheint nicht nicht der Fall zu
> sein.

Das stimmt, solange die DLL nicht schon im Speicher ist.

> Außerdem werden DLLs offensichtlich bei der ersten Verwendung in
> den Speicher geladen und dann immer zuerst dort gesucht.

Die cygwin1.dll wird geladen, sobald das erste Programm sie benötigt. In
Deinem Fall eine Shell oder ein Service. Daher ist das dann die neue
Version.

Wenn dann die Anwendung vom Netzlaufwerk gestartet wird, findet Windows
die schon geladene cygwin1.dll und verwendet diese. Nur wenn noch keine
cygwin1.dll im Speicher ist, würde die aus dem Anwendungsverzeichnis
verwendet.

> Wie erreiche ich, daß der Suchpfad für DLLs abhängig von der
Umgebung
> gesetzt wird, so, wie es unter Linux einfach mit der
> Umgebungsvariablen LD_LIBRARY_PATH möglich ist, ohne etwas neu zu
> kompilieren?

Geht unter Windows nicht. Unter Linux können x Programme x Versionen der
Bibliothek libx.so laden, weil der Loader den LD_LIBRARY_PATH
berücksichtigt. Windows interessiert sich nur dafür, ob es schon eine
libx.dll im Speicher hat, wenn ja, wird die genommen.

Du schreibst, dass die Skripte die Arbeitsumgebung einrichten. Von daher
vermute ich, dass in der neuen Cygwin Version Dienste eingerichtet sind,
welche beim Start gleich die neue cygwin1.dll laden, bevor die
Netzlaufwerksachen zum tragen kommen. Deaktivieren dieser Dienste kann
helfen, wenn Du sie nicht benötigst.

Gruß
Peter

[ Auf dieses Posting antworten ]