Shawn, PyObject and GDALDatasetH are incompatible types and you can't pass the former to a function that expects the latter. I'm surprised your program can compile with these incompatible types.
Do you mean for your module to extend GDAL's Python bindings? If you look inside the C code of GDAL's Python bindings you may be able to see how to get the GDALDatasetH associated with a Python dataset object. Hope this helps, On Thu, Nov 23, 2017 at 1:25 PM, Shawn Gong <[email protected]> wrote: > Hi list, > > > > Has anyone done this before? > > I try to pass a gdal dataset as an argument from Python to C. > > > > in my C code, I have > > PyObject* py_my_func(PyObject *self, PyObject *args) > { > > PyObject *poDataset; > > > > if(!PyArg_ParseTuple(args, "Odd", &poDataset, &a1, &a2)) > { > return NULL; > } > > > > my_func(poDataset, a1, a2); > } > > > > void my_func(GDALDatasetH hDataset, double a1, double a2) > > { > > } > > > > Python crashed and hDataset was NULL > > Is it possible to do or I did something wrong? > > > > BTW, I have passed either a filename or a gdal array as an argument from > Python to C, with success. > > Thanks, > Shawn > > _______________________________________________ > gdal-dev mailing list > [email protected] > https://lists.osgeo.org/mailman/listinfo/gdal-dev > -- Sean Gillies
_______________________________________________ gdal-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/gdal-dev
