![]() |
DLL finden und Version ermitteln
Hmm, Überschrift erläutere ich gleich näher...
Tach zusammen. Habe heute mal folgendes Prob: Da mein Prog auf bestimmte Dateiversionen von dlls angewiesen ist, möchte ich im About-Fenster die Versionen dieser Dateien anzeigen. Jetzt will ich das jedoch so gestalten, dass es mich nicht kümmern muss, wo diese Dateien abgelegt sind. (Soll ja Leute geben, die Windows nicht auf C: haben). Die Datei msado15.dll zum Beispiel (die auch den meisten Ärger macht) habe ich schon in verschiedenen Verzeichnissen gefunden. Was nun? kann mich also weder drauf verlassen, dass sie unterhalb c:\programme liegt noch dass sie überhaupt auf C: liegt. Danke im Voraus Chris |
Das müsste mit GetModuleFileName gehen.
Als Modulhandle nimmst du den Handle, den LoadLibrary zurückliefert (oder GetModuleHandle, wenn die DLL anderweitig geladen wird). So viele Pfade kann es aber eigentlich für die DLL nicht geben. Eine DLL sollte in folgendem Suchpfad liegen, denn so sucht LoadLibrary:
|
Moin Chris,
wenn die DLL redistributable ist, und das Programm nur unter W2K/XP laufen soll, gäbe es da noch einen "Trick": Lege in dem Verzeichnis, in dem die EXE liegt, die die DLL laden soll noch eine Datei "NameDerExe.exe.local" an. Das kann auch eine leere Datei sein. Ausserdem muss in diesem Verzeichnis noch die DLL liegen. Dann wird auf jeden Fall die DLL aus dem Verzeichnis geladen, in dem die EXE steht, egal, wo sich diese ansonsten noch befindet |
Hallo ihr beiden,
danke für die Antworten, denke das hilft mir schon weiter. Die dll liegt übrigens (zumindest auf den meisten Systemen, auf denen ich nachgesehen habe) unterhalb C:\Programme\Gemeinsame... Sollte aber durch PATH gefunden werden. Danke auf jeden Fall, hoffe dass ich mich mal revanchieren kann. Ach ja, guten Morgen. Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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