Frage

Ich habe das folgende Setup:

  • Gdal-Bibliothek mit Python-Bindungen (SWIG)
  • etwas Klebstoffcode (Python)
  • A C-Bibliothek, angeschlossen mit Ctypes

Ich möchte den zugrunde liegenden Dataset-Zeiger / Griff des SWIG-Dataset-Objekts in meine C-Bibliothek bestehen.Wie kann ich diesen Zeiger abrufen?

i tue nicht möchte die C-Bibliothek mit dem SWIG angeben.

War es hilfreich?

Lösung

Es war eigentlich ganz einfach, und ich hoffe, dass meine Lösung tragbar ist.Gegeben, dass meine C-Funktionsdefinition etwas so aussieht:

generasacodicetagpre.

Dann ist meine generationstechnische Definition der generationspflege so:

generasacodicetagpre.

und ich kann die C-Funktion mit:

anrufen generasacodicetagpre.

Andere Tipps

meine reservierung mit dem ctypes-Ansatz für dieses Problem ist, dass die Referenzzählung des DS-Objekts nicht automatisch inkrementiert ist und ein schlechter Zeiger wird, wenn er aus dem Umfang gehen würde.

Ein besserer Ansatz wäre, ein C-Python-Erweiterungsmodul zu definieren, das den Datenreferenzzähler verwalten würde.

Ich verwende ein statisches PyoBect *, um das Objekt zu halten, offensichtlich würde eine echte Implementierung es intelligenter speichern.

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top