wo muss man eine DLL hintun und wie einstellen?

Probleme bei der Installation?
Antworten
SamirMourad
User
Beiträge: 8
Registriert: Mittwoch 28. November 2007, 10:20

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Im Zweifelsfall in den gleichen Ordner in dem das Skript ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
SamirMourad
User
Beiträge: 8
Registriert: Mittwoch 28. November 2007, 10:20

Hallo, Leonidas

da habe ich gemacht, wie ich ja auch geschrieben habe.
Trotzdem kommt diese Fehlermeldung.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Versuch es mal mit `cdll.LoadLibrary()` und `windll.LoadLibrary()`.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
SamirMourad
User
Beiträge: 8
Registriert: Mittwoch 28. November 2007, 10:20

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
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
Zuletzt geändert von gerold am Mittwoch 5. Dezember 2007, 11:00, insgesamt 3-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
SamirMourad
User
Beiträge: 8
Registriert: Mittwoch 28. November 2007, 10:20

Hallo, Gerold

ok. Vielen Dank für die schnelle Hilfe.
Ich probiere es gleich nach einer kleinen Kaffepause, so Gott will.

Alles Gute,
Samir
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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()
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
SamirMourad
User
Beiträge: 8
Registriert: Mittwoch 28. November 2007, 10:20

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
benny
User
Beiträge: 9
Registriert: Mittwoch 12. Dezember 2007, 16:02

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
Antworten