Hallo Zusammen,
ich habe ein großes Problem: folgender Code Soll eine DLL in Python
einbinden und dann deren Funktionen verwenden.
1 | from ctypes import *
|
2 |
|
3 | print "Lade EasyLase-Library..."
|
4 | mylib = CDLL("Easylase.dll")
|
5 | print "Pruefe auf verfuegbare Geraete..."
|
6 | nummer=mylib.EasyLaseGetCardNum()
|
7 | print nummer
|
8 | print "Pruefe Status..."
|
9 | print mylib.EasyLaseGetStatus(nummer-1)
|
10 | print "Sende DMX-Werte...."
|
11 | #mylib.EasyLaseWriteDMX()
|
12 | #mylib.EasyLaseDMXOut(0, arr, 0, 12)
|
Leider klappt das nicht so wie es soll. Zwar wird in nummer die richtige
Box-Anzahl eingetragen (1) doch schon der nächste Aufruf spukt einen
Fehler aus:
1 | Lade EasyLase-Library...
|
2 | Pruefe auf verfuegbare Geraete...
|
3 | 1
|
4 | Pruefe Status...
|
5 | Traceback (most recent call last):
|
6 | File "windll.py", line 9, in <module>
|
7 | print mylib.EasyLaseGetStatus(nummer-1)
|
8 | WindowsError: exception: access violation reading 0x00000000
|
aus der DLL-Doku:
1 | Function EasyLaseGetStatus(CardNumber:integer) :integer
|
2 | Ermitteln des Kartenstatus hinsichtlich Framepuffer und USB-Funktionalität.
|
3 | Rückgabewert: 0 = USB-Error (genauer Errorcode in EasyLaseGetLastError)
|
4 | 1 = Ready (Frames können geladen werden)
|
5 | 2 = Busy (Beide Framepuffer voll, Empfangsdaten werden verworfen)
|
Kann mir jemand weiterhelfen?
Schonmal Danke :-)