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
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 ]
