[ctypes] Pointer auf Struktur als Argument

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Jaspar
User
Beiträge: 12
Registriert: Mittwoch 18. März 2009, 17:42

Hallo HWK,

ich denke nicht, aber prizipiell sollen wohl auch 16-Bit Systeme unterstützt werden.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
Jaspar
User
Beiträge: 12
Registriert: Mittwoch 18. März 2009, 17:42

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.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Nur um sicher zu gehen: driverHandles[0] ist auch ein entsprechender ctypes-Typ wie c_short?
MfG
HWK
Jaspar
User
Beiträge: 12
Registriert: Mittwoch 18. März 2009, 17:42

driverHandles[0] ist ein c_long.
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Funktioniert denn ctypes allgemein?
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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?
Jaspar
User
Beiträge: 12
Registriert: Mittwoch 18. März 2009, 17:42

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
Antworten