Thanks Igor, I finally got it working. I am putting the code here so I can easily find it next time I need to do this ;-)... and perhaps someone can point out a better way to do it with ffi. BTW, NB looks very interesting, could it be possible to use it on 64bits? or as someone said about ffi, it could require a major rewrite? cheers! incrementIntegerPointer: integerValue "FFITest incrementIntegerPointer: 3" | pointer integer data | (pointer := ExternalAddress allocate: ExternalType long byteSize) signedLongAt: 1 put: integerValue. data := ExternalData fromHandle: pointer type: ExternalType long asPointerType. self integerAsPointer: data. ^ pointer signedLongAt: 1 integerAsPointer: integer <cdecl: void 'IntegerAsPointer' (long *) module:'ffitest.so'> ^self externalCallFailed -- View this message in context: http://forum.world.st/FFI-basics-tp4531126p4649417.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.