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.
Traceback (most recent call last):
File "./test.py", line 16, in <module>
gtk_init(byref(argc), byref(argv))
ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: expected LP_LP_c_char_p instance instead of pointer to c_char_p_Array_1
Übrigens muss man natürlich oben aufpassen, dass man einmal die von Python ermittelte Länge der `sys.argv`-Liste nimmt, um die Größe des Arrays mittels Multiplikation festzulegen und erst danach das `c_int`-Objekt für die Übergabe als Funktionsparameter für C.
@snafu: Einen Typ Array gibt's indirekt über das Multiplizieren von Typen mit einer Zahl, aber Zeiger und Array sind ja in C fast das gleiche. Genau wie in C kannst Du mit `ctypes`-Zeigern auch Indexzugriffe machen. Bei `gtk_init()` sehe ich in der Signatur aber auch kein Array, sondern einen Zeiger auf einen Zeiger auf einen Zeiger auf `char`. Zeiger auf `char` gibt's schon als `c_char_p`, also müssen nur noch zwei der Sternchen durch `POINTER()` ersetzt werden.
Anscheinend ist `ctypes` da "typsicherer" als C, also bleibt nur `cast()`\en.
Hier mal ein Beispiel für ein `web_view` in einem Fenster. Mit dem Herumreichen von Variablen sozusagen innerhalb des C-Kontextes habe ich also kein Problem.
Schwierig wird allerdings das testweise Auslesen der URL aus meinem `network_request`. Signatur:
In meinem Ansatz sage ich einfach, dass die Rückgabe von Typ `c_char_p` ist, aber das reicht offenbar nicht. Ich bekomme nur irgendwelche komischen Zeichen zurück.