On 25/03/2008, Gabriel Genellina <[EMAIL PROTECTED]> wrote: > > En Mon, 24 Mar 2008 19:56:08 -0300, Nathan Harmston > <[EMAIL PROTECTED]> escribió: > > > > import ctypes > > t = ctypes.CDLL('./Simulation.so') > > this works fine, I have a simple function I ve put in for testing which > > just > > returns the integer 4. However when I try to access this function it > > doesnt > > work > > t.test() > > File "<stdin>", line 1, in <module> > > File > > > "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ctypes/__init__.py", > > line 325, in __getattr__ > > func = self.__getitem__(name) > > File > > > "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ctypes/__init__.py", > > line 330, in __getitem__ > > func = self._FuncPtr((name_or_ordinal, self)) > > AttributeError: dlsym(0x81e6b0, test): symbol not found > > > Looks like the symbol isn't public - probably if you try loading the > library with a C program it won't find it either. How is the function > declared in the source? > Try listing all public symbols with: nm -D Simulation.so
Thanks for the quick reply: Running nm lists test as 00001760 T _test in the source its declared as: int test(){ return 4; } Sorry, this is the first time I'm making my own shared library and using ctypes, so being a little slow. Thanks again Nathan > Im hoping python-list is ok for questions regarding ctypes :S > > > It's not off topic, although there is a specific list for ctypes-related > questions. But hijacking a thread to post a completely different question > is not good netiquette. > > -- > Gabriel Genellina > > > -- > http://mail.python.org/mailman/listinfo/python-list >
-- http://mail.python.org/mailman/listinfo/python-list