Actually the problem was I had forgotten to put the right number of arguments in the Smalltalk method … Too bad …
Le 10 juil. 2014 à 11:54, Esteban Lorenzano <esteba...@gmail.com> a écrit : > > On 10 Jul 2014, at 02:32, Andres Valloud <avall...@smalltalk.comcastbiz.net> > wrote: > >> On 64 bit Windows a long is 32 bits and pointers are 64 bits, so that type >> of replacement is not going to work in the long run… > > Of course, but let’s take care about that problem when actually become a > problem :) > Hopefully, for when we finally have a 64bits with FFI, we will have a proper > ** interpretation, but the workaround is the fastest solution you can have > for now. > > Esteban > >> >> On 7/9/14 8:20 , Esteban Lorenzano wrote: >>> yes, FFI does not handle ** arguments. >>> I always replace it by ulong instead (it is the same, after all) >>> >>> Esteban >>> >>> On 09 Jul 2014, at 17:17, Clément Bera <bera.clem...@gmail.com >>> <mailto:bera.clem...@gmail.com>> wrote: >>> >>>> Hello, >>>> >>>> This bug happen both with the old and new compiler. >>>> >>>> The error tells you that the number of arguments of your smalltalk >>>> method does not match the number of argument of the C method you want >>>> to call (but it seemsthe number of arguments is correct). >>>> >>>> This works fine: >>>> >>>> <apicall: int 'gst_init_check' (int char* int) module: >>>> 'libgstreamer1.0-0.so <http://libgstreamer1.0-0.so/>'> >>>> ^self externalCallFailed >>>> >>>> This works fine too: >>>> >>>> <apicall: int 'gst_init_check' (int* char* int*) module: >>>> 'libgstreamer1.0-0.so <http://libgstreamer1.0-0.so/>'> >>>> ^self externalCallFailed >>>> >>>> So it seems the bug comes from the parser missparsing ** . I am not >>>> familiar with C enough to help, I don't know what means ** (Is it a >>>> pointer pointing to a pointer pointing to the actual data ?). >>>> >>>> Perhaps someone who knows how to use FFI can give a better answer. >>>> >>>> Esteban ? Guille ? >>>> >>>> >>>> 2014-07-09 16:39 GMT+02:00 Annick Fron <i...@afceurope.com >>>> <mailto:i...@afceurope.com>>: >>>> >>>> >>>> Hi, >>>> >>>> >>>> >>>> I am trying to use FFI on linux with pharo 3 using version >>>> 31 of FFI. >>>> >>>> I have written the following method : >>>> >>>> >>>> <apicall: int 'gst_init_check' (int* char** int*) module: >>>> 'libgstreamer1.0-0.so <http://libgstreamer1.0-0.so/>'> >>>> >>>> ^self externalCallFailed >>>> >>>> >>>> ==== >>>> >>>> but when accepting it I get a syntax error « matching number of >>>> arguments » >>>> Annick Fron >>>> >>>> >>> >> > >