Martin Landa wrote: > > Does this work: > > ... > > c_input = c_char_p(input) > > c_mapset = c_char_p("") > > mapset = grass.G_find_raster2(c_input, c_mapset) > > ... > > No, > > String.from_param(): $Revision: 41297 $ > String.__init__(): $Revision: 41297 $ > String.from_param(): $Revision: 41297 $ > String.__init__(): $Revision: 41297 $ > String.from_param(): /home/martin/smetiste/example7.py > String.__init__(): /home/martin/smetiste/example7.py > Traceback (most recent call last): > File "/home/martin/smetiste/example7.py", line 10, in <module> > mapset = grass.G_find_raster2(c_input, c_mapset) > ctypes.ArgumentError: argument 1: <type 'exceptions.TypeError'>: > cannot concatenate 'str' and 'c_char_p' objects
That error is coming from your debugging statements; you're probably doing something like: print "String.from_param(): " + obj Using: print "String.from_param(): %s" % obj or: print "String.from_param():" + str(obj) should work. > > Or this: > > ... > > grass.G_find_raster2.argtypes = [c_char_p, c_char_p] > > grass.G_find_raster2.restype = c_char_p > > mapset = grass.G_find_raster2(c_input, c_mapset) > > Yes, it's working. > > > The most common issue with ctypes, and the most likely reason why the > > underlying function would end up getting garbage data, is that the > > ctypes pointer types don't hold a reference to the underlying object, > > which can result in it being garbage collected while it is still being > > used. > > Yes, it's seems to be a ctypes issue. Well, the "manual" ctypes version worked earlier, so it appears to be a problem with the wrappers. The preamble's String type looks unnecessarily complex; there's probably a reason, but I have doubts as to whether the benefits outweight the drawbacks. Can you try r42331? This eliminates most of the preamble, making String and ReturnString aliases for c_char_p. If there's a need for something more complex, I'll deal with that if and when it happens. -- Glynn Clements <gl...@gclements.plus.com> _______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev