Resultados de la búsqueda a petición "ffi"

2 la respuesta

¿Cuál es la forma correcta de asignar datos para pasar a una llamada FFI?

Despuésdiscutir / aprender sobre la forma correcta de llamar a un FFI de la API de Windows desde Rust [https://stackoverflow.com/questions/39534712/should-i-pass-a-mutable-reference-or-transfer-ownership-of-a-variable-in-the-con] , Jugué un poco ...

1 la respuesta

El puntero sin procesar se convierte en nulo pasando de Rust a C

Estoy tratando de recuperar un puntero sin formato de una función C en óxido, y uso ese mismo puntero sin formato como argumento en otra función C de otra biblioteca. Cuando paso el puntero sin formato, termino con un puntero NULO en el lado ...

1 la respuesta

Cómo representar un puntero a una matriz en Rust para C

necesito unextern "C" FFI funciona en Rust y desea aceptar una matriz de tamaño fijo. El código C pasa algo como: // C code extern int(*)[4] call_rust_funct(unsigned char (*)[3]); .... unsigned char a[] = { 11, 255, 212 }; int(*p)[4] = ...

2 la respuesta

Rust FFI que pasa el objeto de rasgo como contexto para llamar a las devoluciones de llamada

Bien, estoy tratando de lograr lo siguiente: C llama a la oxidaciónrust vuelve a llamar a c y registra una devolución de llamada en un objeto de rasgo definido por el usuarioc invoca óxido con el contextoRust llama a la devolución de llamada en ...

1 la respuesta

¿Cómo creo una función de devolución de llamada Rust para pasar a una función FFI?

Así es como se ve C API void mosquitto_connect_callback_set(struct mosquitto *mosq, void (*on_connect)(struct mosquitto *, void *, int));rust-bindgen ha generado esto para mí pub fn mosquitto_connect_callback_set(mosq: *mut Struct_mosquitto, ...

2 la respuesta

Llamar al método Rust desde C con parámetros de matriz

Estoy tratando de llamar al código Rust desde mi proyecto C para un dispositivo incrustado. El dispositivo imprime sobre UART, por lo que puedo ver cuál es el resultado de mi llamada. El siguiente código C y Rust funciona como se esperaba (he ...

1 la respuesta

¿Cómo detener las pérdidas de memoria cuando se usa `as_ptr ()`?

Como es la primera vez que aprendo programación de sistemas, me cuesta mucho entender las reglas. Ahora, me confundí con las pérdidas de memoria. Consideremos un ejemplo. Digamos, Rust está lanzando un puntero (a una cuerda) que Python ...

1 la respuesta

Pasar una lista de cadenas de Python a Rust

He estado aprendiendo Rust durante aproximadamente dos semanas y hoy, ingresé a su FFI. Usé Python para jugar con Rust, usando ctypes y libc. Pasé enteros, cadenas e incluso aprendí a pasar una lista de enteros (gracias a esta maravillosa ...

1 la respuesta

hsc2hs: mutar una estructura C con Haskell

Estoy tratando de escribir un programa Haskell que se comunique con C (en última instancia para iOS a través de GHC-iOS). Quiero que pase una cadena de C a Haskell, haga que Haskell lo procese y luego devuelva algunos tipos de datos de Haskell a ...

1 la respuesta

Genéricos de ocultamiento de punteros a través de `mem :: transmute ()`

Estoy intentando escribir enlaces Rust para una biblioteca de colección C (Judy Arrays [1]) que solo proporciona espacio para almacenar un valor de ancho de puntero. Mi empresa tiene una buena cantidad de código existente que utiliza este espacio ...