Seite 1 von 1
wo muss man eine DLL hintun und wie einstellen?
Verfasst: Dienstag 4. Dezember 2007, 22:32
von SamirMourad
Ein schönen guten Abend, liebe Freunde
folgendes Problem habe ich:
über eine Oberfläche im wxpython möchte ich ein Veleman USB-Board ansteuern. Dort wurde mitgeliefert:
K8061.dll
K8061.h
diese Dateien habe ich in das Verzeichnis reinkopiert, wo meine .py-Datei ist.
ich habe ctypes importiert und wollte nun die dll reinladen (mit windll.K8061).
Leider gibt er folgenden Fehler:
File ...\ctypes\__init__.py , Zeile 340, in __init__
self._handle = dlopen_(self._name, mode)
WindowsError[126]: das angegebene Modul wurde nicht gefunden
In der Dokumentation zu ctypes habe ich leider nichts gefunden.
Könnte mir bitte jemand helfen?
Alles Gute und gute Nacht,
Samir
Verfasst: Dienstag 4. Dezember 2007, 22:48
von Leonidas
Im Zweifelsfall in den gleichen Ordner in dem das Skript ist.
Verfasst: Mittwoch 5. Dezember 2007, 08:54
von SamirMourad
Hallo, Leonidas
da habe ich gemacht, wie ich ja auch geschrieben habe.
Trotzdem kommt diese Fehlermeldung.
Verfasst: Mittwoch 5. Dezember 2007, 10:07
von Leonidas
Versuch es mal mit `cdll.LoadLibrary()` und `windll.LoadLibrary()`.
Verfasst: Mittwoch 5. Dezember 2007, 10:42
von SamirMourad
Hallo, Leonidas
hat auch nicht geklappt. Hatte ich schon früher probiert.
Ok, vielleicht liegt es daran, dass die dll nicht mit python 2.5 kompatibel ist.
Mit diesem USB-Board hatte ich in einer Firma zu tun. Dort wurde aber mit python 2.3 programmiert.
Ok, danke für die bisherige Hilfe.
Alles Gute,
Samir
Verfasst: Mittwoch 5. Dezember 2007, 10:55
von gerold
Hallo Samir!
Dort
http://www.velleman.be/download/files/?lang=de&id= kannst du dir die neuesten Treiber herunterladen.
Und kann es nicht sein, dass du auch die Datei "mpusbapi.dll" in den Ordner legen musst?
mfg
Gerold
Verfasst: Mittwoch 5. Dezember 2007, 10:58
von SamirMourad
Hallo, Gerold
ok. Vielen Dank für die schnelle Hilfe.
Ich probiere es gleich nach einer kleinen Kaffepause, so Gott will.
Alles Gute,
Samir
Verfasst: Mittwoch 5. Dezember 2007, 11:00
von gerold
Du brauchst
- K8061.dll
- mpusbapi.dll
Und dann sollte es so funktionieren:
Code: Alles auswählen
import ctypes as ct
k8061 = ct.cdll.LoadLibrary("K8061.dll")
retval = k8061.OpenDevice()
if 0 <= retval <= 7:
print "Card %i opened." % retval
elif retval == -1:
print "All cards opened."
elif retval == -2:
print "Card not found"
else:
print "Retval: %i" % retval
k8061.CloseDevices()
Verfasst: Mittwoch 5. Dezember 2007, 12:13
von SamirMourad
Hallo, Gerold
vielen Dank. Es hat geklappt. Man kann jetzt sowohl die digitalen EIngänge ansteuern als auch die die analogen Ausgänge der Karte auslesen.
Also ehrlich gesagt, hast du ja jetzt das meiste an dem Programm für das Solarkraftwerk getan.
Es soll, so Gott will, ein Pilotprojekt im Mittelmeerraum oder auch etwas südlich davon werden. Auch evtl. mit Windkraft dazu.
Ich hoffe, dass ich dich dann später vor Ort einladen kann.
Wenn das Programm fertig ist, soll es auch die Homepage
www.vaef.de kommen.
Alles Gute,
Samir
Verfasst: Dienstag 22. April 2008, 12:51
von benny
Hallo liebe Forenmitglieder,
ich wollte mich hier an dieser Stelle mit folgender Frage anschließen:
MUSS denn eine dll unbedingt im selben Verzeichnis liegen wie die Hauptdatei?
Ich bekomme nämlich dieselbe Fehlermeldung wie oben geschildert, allerdings kann ich die dll nicht verschieben da sie selbst verzeichnisabhängig ist.
Gibt es dazu einen Workaround?
Danke im voraus!
Grüße
Benny