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 :-)