![]() |
Im Order liegende DLL laden schlägt fehl *wall*
Moin,
entweder ich bin zu blöd oder ... ach was weiß ich: Ich möchte ganz einfach eine DLL laden, die in einem anderen Ordner liegt. Liegt die DLL im gleichen Verzeichnis wie die EXE, geht alles klar:
Delphi-Quellcode:
Nun will ich aber das die DLL in einem anderen Ordner liegt, um genau zu sein in dem Ordner 'lib'. Problem ist nur, dass es einfach nicht gehen will. :wall:
h := LoadLibrary('pics.dll');
Alle Möglichkeiten die mir einfielen gehn nicht:
Delphi-Quellcode:
h := LoadLibrary('lib/pics.dll');
Delphi-Quellcode:
h := LoadLibrary('/lib/pics.dll');
Delphi-Quellcode:
h := LoadLibrary('\lib\pics.dll');
Delphi-Quellcode:
Selbst
h := LoadLibrary('lib\pics.dll');
Delphi-Quellcode:
geht nicht. Ich bin echt verzweifelt, liegt wohl auch daran das in meinem Zimmer 34°C sind. Es kommt übrigens immer der Fehler DLL blbla nicht gefunden...
h := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'lib/pics.dll'));
Jemand ne Idee? :-( |
Re: Im Order liegende DLL laden schlägt fehl *wall*
Unter Windows musst Du auch den Backslash \ zum Seperieren von Ordnern verwenden.
Delphi-Quellcode:
mfG
h := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'lib\pics.dll'));
// oder h := LoadLibrary('.\lib\pics.dll'); mirage228 |
Re: Im Order liegende DLL laden schlägt fehl *wall*
Zitat:
Wenn diese Meldung kommt, dann benötigt diese DLL zum Laden eine andere DLL (welche statisch eingebunden ist) und diese wird nicht gefunden. Deshalb schlägt das Laden der pics.dll fehl. |
Re: Im Order liegende DLL laden schlägt fehl *wall*
Scheinbar ist es doch zu heiß hier. :wall:
Ich hatte vergessen die Funktion die ich deklariert hatte auch den Ordner zu ändern, also
Delphi-Quellcode:
:oops:
function GetAuthorization(): PChar; stdcall; external 'lib/pics.dll';
@David: Es geht auch nur mit /. :P |
Re: Im Order liegende DLL laden schlägt fehl *wall*
Ich stelle mal eine Vermutung an: Du weisst überhaupt nicht was du machst, oder?
Warum bindest du diese Funktion statisch in dein Programm ein, wenn du hier versuchst die DLL dynamisch mit LoadLibrary zu laden? Du brauchst kein LoadLibrary anzuwenden, wenn deine DLL statisch angezogen wird. |
Re: Im Order liegende DLL laden schlägt fehl *wall*
Ich brauch die DLL aber auch dynamisch, da ein anderes Form dies benötigt und ich es so in die Unit schreiben musste.
Eigentlich dachte ich schon das ich weiß was ich mache. :gruebel: |
Re: Im Order liegende DLL laden schlägt fehl *wall*
Zitat:
Dein Argument ist so oder so unverständlich. Wenn du eine DLL hast, dann bau dir eine Unit welche alle Funktionen der DLL als Prototypen deklariert und von mir aus auch gleich statisch einbindet (wie deine gezeigte Codezeile zur statischen Einbindung). Und ob diese Unit nun in einer oder 2 anderen Units in der Uses Liste steht ist doch vollkommen wurst. Ich verstehe nicht was du da denn noch alles zusätzlich schreiben solltest in der Form? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 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 by Thomas Breitkreuz