From: Thom D. <t.r...@la...> - 2007-02-07 21:39:08
|
> -----Original Message----- > From: swi...@li... [mailto:swig-user- > bo...@li...] On Behalf Of Thom DeCarlo > Sent: Wednesday, February 07, 2007 4:16 PM > To: 'Swig-user email list' > Subject: [Swig-user] Q: returning values in function parameters > > Ok, for my next stupid noobie question... > > I am wrapping a function whose return value indicates success or failure > of > an operation and places the result of the operation in one of the function > arguments. The Python book I'm using (Beginning Python: From Novice to > Professional by Magnus Lie Hetland) seems to ignore this standard C > feature. > > > Can someone tell me how do I wrap the function and then how do I call the > function in python? > > The C++ function looks like this: > > BOOL GetHashIndex(std::string, unsigned long* index); > > SWIG doesn't seem to mind that definition. But when I try to call the > function in Python I get: > > >>> nsm.GetHashIndex("latdeg", hashindex) > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "pyNamedSharedMemory.py", line 113, in GetHashIndex > def GetHashIndex(*args): return > _pyNamedSharedMemory.utNamedSharedMemory_GetHashIndex(*args) > TypeError: in method 'utNamedSharedMemory_GetHashIndex', argument 3 of > type > 'unsigned long *' > >>> > > I can't find any guidance on how to pass the address of a variable to be > set > within the called function. Can anyone please hit me with a clue-stick? > > Thanks, > Thom > -- > Nevermind. Shortly after sending this note I found section 29.7.1 in the SWIGDocumentation.pdf file. That gave a pretty through answer to my question. Sorry for using up the bandwidth. Thom |