[squeak-dev] problema con FFI: "could not coerce arguments"

Giuseppe Luigi Punzi glpunzi at lordzealon.com
Mon May 26 07:09:57 UTC 2008


Mariano, ya estás preguntando en Squeak-Dev directamente, donde has enviado este correo :P

On Mon, 26 May 2008 01:49:07 -0300
"Mariano Martinez Peck" <marianopeck at gmail.com> wrote:

> Tuve que mapear con openDBX las funciones odbx_set_argument y la
> odbx_get_argument.
> 
> Estoy probando la set, y me tira ese error de FFi. Creo que es un quilombo
> con el void pues es la primer función que mapeamos con ello.
> 
> La función de openDBX es así:
> 
> int *odbx_set_option*(
>     odbx_t* *handle*,
>     unsigned int *option*,
>     void* *value* )
> 
> 
> Acá hay un ejemplo en C de cómo se usa:
> 
> option = ODBX_TLS_ALWAYS;
> if( ( err = odbx_set_option( handle, ODBX_OPT_TLS, (void*) &option ) ) < 0 )
> {
>     fprintf( stderr, "odbx_set_option(): %s\n", odbx_error( handle, err ) );
>     odbx_finish( handle );
>     return err;
> }
> 
> 
> Así es el método apiSetOption de la clase OpenDBX
> 
> apiSetOption: handle option: anOption value: aValue
>     "int odbx_unbind(odbx_t*)"
>     <cdecl: long 'odbx_set_option' (ulong ulong void*) module: 'opendbx' >
>     ^self externalCallFailed
> 
> 
> Probé poner void*, void, ulong y ulong* pero en todos los casos me tiró el
> mismo error.
> 
> Así se usa éste método en la clase DBXConnection:
> 
> err := OpenDBX apiSetOption: self option:32  value:1.
> 
> No lo subí porque no anda (y además porque squeaksource está caído), pero si
> no lo subo no se si me van a poder ayudar....¿quieren que igualmente lo
> suba? ¿alguna idea o pregunto en squeak-dev?
> 
> saludos,
> 
> mariano
> 


-- 
Giuseppe Luigi Punzi <glpunzi at lordzealon.com> 
<http://www.lordzealon.com>



More information about the Squeak-dev mailing list