DLL-Funktion von Python aus nutzen

25/09/2016 - 22:25 von Hans-Georg Joepgen | Report spam
Es soll die Funktion HeEnum in der DLL 'he2325u.dll' von Henrik Haftmann
aus einem Pythonscript genutzt werden. Auszug aus he2325u.h:

#define HE_NUM_MAX 256
...
FUNC(void) HeEnum(char List[HE_NUM_MAX]);

Das Script (Python 3.5.2, Windows 10 V1607/64):

import ctypes
dll = ctypes.WinDLL ('he2325u.dll')
liste = ctypes.create_string_buffer(256)
dll.HeEnum (liste)
print (liste.value)

Statt der erwarteten Liste wird ein Block mit folgendem Start ausgegeben:

b'\xfe\xfe\xff\xff\xff\xff\xff\xff\...

Irgendwo muss ein dummer Fehler stecken. Sieht den jemand?

Nebenbei: Es geht um das Auslesen des Uni-Trend DMM UT61B per
USB-Interface. Das Programm dmm von Henrik Haftmann schafft
das über he2325u.dll sehr schön; Dll und DMM sind also in Ordnung.

Gruß -- Joe
 

Lesen sie die antworten

#1 Diez B. Roggisch
26/09/2016 - 00:07 | Warnen spam
Wieso sollte da magisch eine Liste auftauchen?

C kennt keine Listen. Jedenfalls nicht so. Die Funktion erwartet, bekommt & befüllt ein Character Array. Das kannst du nun selbst in eine Liste verwandeln. Oder einfach direkt drüber iterieren.

Diez



Mobile Mail. Excuse brevity.


Am 25.09.2016 um 22:25 schrieb Hans-Georg Joepgen :

Es soll die Funktion HeEnum in der DLL 'he2325u.dll' von Henrik Haftmann aus einem Pythonscript genutzt werden. Auszug aus he2325u.h:

#define HE_NUM_MAX 256
...
FUNC(void) HeEnum(char List[HE_NUM_MAX]);

Das Script (Python 3.5.2, Windows 10 V1607/64):

import ctypes
dll = ctypes.WinDLL ('he2325u.dll')
liste = ctypes.create_string_buffer(256)
dll.HeEnum (liste)
print (liste.value)

Statt der erwarteten Liste wird ein Block mit folgendem Start ausgegeben:

b'\xfe\xfe\xff\xff\xff\xff\xff\xff\...

Irgendwo muss ein dummer Fehler stecken. Sieht den jemand?

Nebenbei: Es geht um das Auslesen des Uni-Trend DMM UT61B per USB-Interface. Das Programm dmm von Henrik Haftmann schafft
das über he2325u.dll sehr schön; Dll und DMM sind also in Ordnung.

Gruß -- Joe
_______________________________________________
python-de maillist -
https://mail.python.org/mailman/listinfo/python-de

Ähnliche fragen