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