AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Im Order liegende DLL laden schlägt fehl *wall*
Thema durchsuchen
Ansicht
Themen-Optionen

Im Order liegende DLL laden schlägt fehl *wall*

Ein Thema von Balu der Bär · begonnen am 25. Jun 2006 · letzter Beitrag vom 25. Jun 2006
Antwort Antwort
Balu der Bär
(Gast)

n/a Beiträge
 
#1

Im Order liegende DLL laden schlägt fehl *wall*

  Alt 25. Jun 2006, 18:24
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: h := LoadLibrary('pics.dll'); 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.

Alle Möglichkeiten die mir einfielen gehn nicht:
h := LoadLibrary('lib/pics.dll'); h := LoadLibrary('/lib/pics.dll'); h := LoadLibrary('\lib\pics.dll'); h := LoadLibrary('lib\pics.dll'); Selbst
h := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'lib/pics.dll')); 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...

Jemand ne Idee?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Im Order liegende DLL laden schlägt fehl *wall*

  Alt 25. Jun 2006, 18:30
Unter Windows musst Du auch den Backslash \ zum Seperieren von Ordnern verwenden.

Delphi-Quellcode:
h := LoadLibrary(PChar(ExtractFilePath(ParamStr(0)) + 'lib\pics.dll'));
// oder
h := LoadLibrary('.\lib\pics.dll');
mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Im Order liegende DLL laden schlägt fehl *wall*

  Alt 25. Jun 2006, 18:36
Zitat von Balu der Bär:
Es kommt übrigens immer der Fehler DLL blbla nicht gefunden...

Jemand ne Idee?
Ja, ich! *meld*

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.
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#4

Re: Im Order liegende DLL laden schlägt fehl *wall*

  Alt 25. Jun 2006, 18:37
Scheinbar ist es doch zu heiß hier.

Ich hatte vergessen die Funktion die ich deklariert hatte auch den Ordner zu ändern, also
function GetAuthorization(): PChar; stdcall; external 'lib/pics.dll';

@David: Es geht auch nur mit /.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Im Order liegende DLL laden schlägt fehl *wall*

  Alt 25. Jun 2006, 18:41
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.
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#6

Re: Im Order liegende DLL laden schlägt fehl *wall*

  Alt 25. Jun 2006, 18:45
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.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Im Order liegende DLL laden schlägt fehl *wall*

  Alt 25. Jun 2006, 18:53
Zitat von Balu der Bär:
Ich brauch die DLL aber auch dynamisch, da ein anderes Form dies benötigt und ich es so in die Unit schreiben musste.
Wozu? Wenn du einmal eine Funktion der DLL statisch einbindest, dann ist die DLL required - dein Prog startet nicht ohne die DLL. Wenn du nun also noch in dem Code LoadLibrary() auf diese DLL ausführst, dann hast du doch nur eine zusätzliche Fehlerquelle.
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?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz