@markus87: Argh, ich bin blind: `contents` ändert den Inhalt des Datentyps, also *den Zeiger*. Du willst aber das ersetzen *worauf* er zeigt:
In [130]: a = ct.c_int(42) # int deklarieren und initialisieren.
In [131]: p = ct.pointer(a) # Zeiger auf den int.
In [132]: p.contents = ct.c_int(23 ...
Die Suche ergab 5 Treffer
- Montag 12. Mai 2014, 22:45
- Forum: Python mit anderen Sprachen verwenden
- Thema: Callback-Funktion mit Pointer als Parameter
- Antworten: 10
- Zugriffe: 6803
- Montag 12. Mai 2014, 21:19
- Forum: Python mit anderen Sprachen verwenden
- Thema: Callback-Funktion mit Pointer als Parameter
- Antworten: 10
- Zugriffe: 6803
Re: Callback-Funktion mit Pointer als Parameter
@markus87: So vom schnellen drüberschauen scheinen die Rückruffunktionen alle keinen Rückgabetyp ”deklariert” zu haben (`None`), die Funktionen geben aber alle eine Zahl zurück und im C-Programm werden die Rückruffunktionen auch mit dem Rückgabetyp ``int`` deklariert.
Habe jetzt die ...
Habe jetzt die ...
- Montag 12. Mai 2014, 20:38
- Forum: Python mit anderen Sprachen verwenden
- Thema: Callback-Funktion mit Pointer als Parameter
- Antworten: 10
- Zugriffe: 6803
Re: Callback-Funktion mit Pointer als Parameter
@markus87: Wieso scheinbar? Woran erkennst Du das? Du prüfst das ja nirgends? Und meine Ausgabe sieht auch anders als in Deinem ersten Beitrag aus, denn die Rückruffunktion setzt den Wert auf 1.0 und darum gibt das Programm auch diesen Wert als letztes aus:
$ python forum9.py
py_get_vsrc_data ...
$ python forum9.py
py_get_vsrc_data ...
- Montag 12. Mai 2014, 11:36
- Forum: Python mit anderen Sprachen verwenden
- Thema: Callback-Funktion mit Pointer als Parameter
- Antworten: 10
- Zugriffe: 6803
Re: Callback-Funktion mit Pointer als Parameter
Ähm ja, als ich den Eintrag geschrieben hab, war ich schon ein bisschen müde. Also, der Code sieht in etwa so aus:
import ctypes
from ctypes import *
def py_get_vsrc_data_cb(voltage, time, name, id, rtptr):
voltage.contents = c_double(1.0)
print "py_get_vsrc_data: name= "+name+", time= "+str ...
import ctypes
from ctypes import *
def py_get_vsrc_data_cb(voltage, time, name, id, rtptr):
voltage.contents = c_double(1.0)
print "py_get_vsrc_data: name= "+name+", time= "+str ...
- Montag 12. Mai 2014, 01:57
- Forum: Python mit anderen Sprachen verwenden
- Thema: Callback-Funktion mit Pointer als Parameter
- Antworten: 10
- Zugriffe: 6803
Callback-Funktion mit Pointer als Parameter
Hallo,
ich versuche seit einigen Stunden eine shared libary (ngSpice) mit Python zu verwenden. Dabei muss ich in einer Callback-Funktion den Wert eines Pointers setzen, aber dieser wird einfach nicht rein geschrieben. Ist der Garbage-Collector schuld, oder was mache ich falsch? Unten ist der Teil ...
ich versuche seit einigen Stunden eine shared libary (ngSpice) mit Python zu verwenden. Dabei muss ich in einer Callback-Funktion den Wert eines Pointers setzen, aber dieser wird einfach nicht rein geschrieben. Ist der Garbage-Collector schuld, oder was mache ich falsch? Unten ist der Teil ...
