Seite 1 von 1

DLL öffnen gibt immer Fehlermeldung aus.

Verfasst: 30.01.2009 21:18
von TheSaint
Hallo Zusammen,

ich versuche gerade auf eine DLL zuzugreifen. Stosse jedoch auf folgendes Problem. Die DLL hab ich hierher:

http://udf.adhoc-data.de/index.html

ich habe in der Hilfe schon folgenden Code ausprobiert:

Code: Alles auswählen

FBudf.s = "C:\Programme\Firebird\Firebird_2_1\FreeAdhocUDF_FB_oWatC32.dll"
Ergebnis.l = OpenLibrary(0, FBudf) 
Nun bekomme ich immer diese Fehlermeldung:

"Die Anwendung konnte nicht gestartet werden, weil ib_util.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben."

Die ib_util.dll ist im gleichen Verzeichnis bzw. im Installationsverzeichnis.

Finde keine Lösung, wie ich auf die Funktionen, die in der DLL sind zuzugreifen. Wäre toll wenn jemand helfen könnte.

Schon mal vielen Dank für Eure Hilfe.

Verfasst: 30.01.2009 21:20
von edel
ib_util.dll muss sich im Suchpfad deines Programmes befinden.

Re: DLL öffnen gibt immer Fehlermeldung aus.

Verfasst: 30.01.2009 21:23
von Kiffi
füge mal das Verzeichnis "C:\Programme\Firebird\Firebird_2_1\" der
Path-Variable Deines Environments hinzu (Rechstklick 'Arbeitsplatz' ->
Eigenschaften -> Tab 'Erweitert' -> Umgebungsvariablen)

Grüße ... Kiffi

Verfasst: 30.01.2009 21:27
von TheSaint
Hallo edel,
edel hat geschrieben:ib_util.dll muss sich im Suchpfad deines Programmes befinden.
Hm, das wusste ich nicht. Ich habe die ib_util.dll in das Verzeichnis, wo die PureBasic.exe ist kopiert und jetzt geht es.

Werde jetzt versuchen mit:

Code: Alles auswählen

Ergebnis = ExamineLibraryFunctions(#Library)
auszulesen und zu sehen wie ich darauf zugreifen kann.

Nochmals vielen Dank. Wäre ich nie draufgekommen.

Re: DLL öffnen gibt immer Fehlermeldung aus.

Verfasst: 30.01.2009 21:30
von TheSaint
Hallo Kiffi,
Kiffi hat geschrieben:füge mal das Verzeichnis "C:\Programme\Firebird\Firebird_2_1" der
Path-Variable Deines Environments hinzu (Rechstklick 'Arbeitsplatz' ->
Eigenschaften -> Tab 'Erweitert' -> Umgebungsvariablen)
vielen Dank für Deine Antwort.
Werde diese Lösung auch einmal versuchen.

Kann man das auch per Code einfügen? Arbeite auf verschiedenen PC.
Oder reicht es wenn ich die dll in das EXE-Verzeichnis von
PB kopiere?

Verfasst: 30.01.2009 21:31
von edel
nein, das reicht nicht.

Verfasst: 30.01.2009 21:37
von AND51
Die DLL muss im selben Verzeichnis liegen, wie deine EXE, dann klappt es. Alternativ in jedem anderen Verzeichnis, welches in der %PATH%-Umgebungsvariable aufgeführt ist.

Ich würde außerdem davon abraten, die %PATH%-Umgebungsvariable zu verändern, das wirkt sich nachteilig auf deine Systemleistung aus und bringt (wenn ich das richtig verstehe) sowieso nichts, wenn du an verschiedenen PCs arbeitest bzw. dein fertiges programm an deine Kunden/Benutzer weitergeben möchtest.

Verfasst: 30.01.2009 21:46
von TheSaint
Hallo Zusammen,

dank Eurer Hilfe :D konnte ich jetzt Zugriff auf die DLL nehmen.

Mit dem folgenden Code habe ich jetzt schon Info's ausgelesen.
Jetzt muss ich nur noch sehen, wie ich auf die enthaltenen
Funktionen aus PB zugreifen kann.

Code: Alles auswählen

FBudf.s = "C:\Programme\Firebird\Firebird_2_1\FreeAdhocUDF_FB_oWatC32.dll"

If OpenLibrary(1, FBudf)
   If ExamineLibraryFunctions(1)
      While NextLibraryFunction()
         Debug LibraryFunctionName()
         Debug LibraryFunctionAddress()
      Wend
   Else
      Debug "Kann sich selbst nicht untersuchen"
   EndIf
Else
   Debug "Kann sich selbst nicht öffnen"
EndIf