Seite 1 von 2

Verfasst: Donnerstag 19. März 2009, 15:04
von Jaspar
Hallo HWK,

ich denke nicht, aber prizipiell sollen wohl auch 16-Bit Systeme unterstützt werden.

Verfasst: Freitag 20. März 2009, 13:59
von HWK
Ist far denn bei 32-Bit-Compilern üblich? Wenn es wirklich eine 16-Bit-Lib ist, muss ja auch der Zeiger anders aussehen. Ich glaube nicht, dass ctypes das automatisch anpasst?
MfG
HWK

Verfasst: Freitag 20. März 2009, 14:15
von Jaspar
Nein, soweit ich weiß ist far nicht üblich bei 32-Bit Systemen. Die Bibliothek kapselt aber wohl über Präprozessordirektiven das zugrundeliegende Betriebssystem und ersetzt das Schlüsselwort far dann durch einen Leerstring.

Verfasst: Freitag 20. März 2009, 15:14
von HWK
Nur um sicher zu gehen: driverHandles[0] ist auch ein entsprechender ctypes-Typ wie c_short?
MfG
HWK

Verfasst: Freitag 20. März 2009, 15:43
von Jaspar
driverHandles[0] ist ein c_long.

Verfasst: Freitag 20. März 2009, 16:14
von fred.reichbier
Funktioniert denn ctypes allgemein?

Verfasst: Samstag 21. März 2009, 07:57
von HWK
Schreib Dir doch mal eine Mini-DLL mit C, die dieselben Argumente wie die Funktion erhält und zeig diese Argumente mit printf o.ä. an. Dann kannst Du ja die Argumente beim Aufruf mit C und ctypes vergleichen. Vielleicht erkennst Du dann einen Unterschied.
Hier ist eine kleine Hilfe zum Erstellen einer eigenen DLL.
MfG
HWK

Noch etwas: Ist FLOAT denn wirklich float?

Verfasst: Montag 23. März 2009, 11:04
von Jaspar
Hallo HWK,

Deine Idee mit der eigenen DLL hatte ich bereits. Ich habe eine entsprechende Wrapper-DLL geschrieben in der ich dann die originäre API-Funktion aufrufe, um dann nur den interessanten Parameter float temp an Python zurückzugeben. Im Python-Skript habe ich dann den resulttype der API-Funktion meiner Wrapper-DLL auf float gesetzt und nun bekomme ich korrekte Werte geliefert.
Ich gebe allerdings zu, dass diese Lösung etwas unbefriedigend ist.

Vielen Dank für Deine Hilfe.



Gruß,

Jas