DLL öffnen gibt immer Fehlermeldung aus.

Anfängerfragen zum Programmieren mit PureBasic.
TheSaint
Beiträge: 143
Registriert: 21.12.2008 18:59

DLL öffnen gibt immer Fehlermeldung aus.

Beitrag 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.
Gruß, TheSaint
___________________________
[ XP Prof SP 3 | Vista | PB 4.30 ]
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

ib_util.dll muss sich im Suchpfad deines Programmes befinden.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: DLL öffnen gibt immer Fehlermeldung aus.

Beitrag 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
a²+b²=mc²
TheSaint
Beiträge: 143
Registriert: 21.12.2008 18:59

Beitrag 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.
Gruß, TheSaint
___________________________
[ XP Prof SP 3 | Vista | PB 4.30 ]
TheSaint
Beiträge: 143
Registriert: 21.12.2008 18:59

Re: DLL öffnen gibt immer Fehlermeldung aus.

Beitrag 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?
Gruß, TheSaint
___________________________
[ XP Prof SP 3 | Vista | PB 4.30 ]
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

nein, das reicht nicht.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
TheSaint
Beiträge: 143
Registriert: 21.12.2008 18:59

Beitrag 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
Gruß, TheSaint
___________________________
[ XP Prof SP 3 | Vista | PB 4.30 ]
Antworten