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
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@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
squeak-dev@lists.squeakfoundation.org