Articles of punteros

Python ctypes – función dll aceptando lockings de estructuras

Tengo que acceder a un terminal POS bajo ms windows xp. Estoy usando python 2.7. La función crucial en la carga de DLL que realiza el pago acepta dos punteros a las estructuras, pero falla al devolver 1 (error de comunicación) pero sin más mensajes. Tenga en cuenta que cuando se llama a la función […]

Python Ctypes pasando puntero para datos

Estoy accediendo a una API y no puedo obtener los datos devueltos. Los dos punteros flotantes apuntarán a una matriz de datos. Debo asumir que la API está funcionando correctamente. Una llamada a función diferente proporciona la longitud de los datos que estoy recuperando. Este valor es la length hacia abajo cuando se intenta. Encabezado […]

Asignación de lista vs. int: “Cada variable es un puntero”

Sé que es una pregunta muy básica, pero necesito ayuda para entender este breve concepto. Estoy estudiando Python, y el libro dice: “Cada variable en Python es un puntero a un objeto. Por lo tanto, cuando escribes algo como y=x , estás de hecho haciendo que ambas apunten al mismo objeto. Si cambias el objeto […]

Usando SWIG con puntero para funcionar en C struct

Estoy tratando de escribir un contenedor SWIG para una biblioteca de C que utiliza punteros a funciones en sus estructuras. No puedo averiguar cómo manejar estructuras que contienen punteros de función. Un ejemplo simplificado sigue. prueba.i: /* test.i */ %module test %{ typedef struct { int (*my_func)(int); } test_struct; int add1(int n) { return n+1; […]

Creando swig wrapper para C ++ (punteros) a python

Soy muy nuevo en swig y estoy intentando crear una envoltura de swig para usar algunos archivos C ++ en Python. Tengo la siguiente clase de C ++. El siguiente es un fragmento del código que estoy tratando de convertir: /*packet_buffer.h*/ class CPacketBuffer { public: // construct based on given buffer, data is not copied […]

Boost.Python Converter para punteros no funciona

TLDR: ¿Es posible pasar tipos de punteros de C ++ a través de convertidores python? Aquí declaré mi MyStruct y mi tipo de puntero para PMYSTRUCT, la plantilla de convertidor PointerConverter y ese módulo de Python: #include namespace py = boost::python; template void from_python_converter() { py::converter::registry::push_back(&Converter::convertable, &Converter::construct, py::type_id()); } template class PointerConverter { public: static […]

Python, ¿cómo pasar un argumento a un parámetro de puntero de función?

Acabo de empezar a aprender Python y descubrí que puedo pasar una función como parámetro de otra función. Ahora, si llamo a foo(bar()) , no pasará como un puntero de función sino el valor de retorno de la función utilizada. Llamar a foo(bar) pasará la función, pero de esta manera no puedo pasar ningún argumento […]

Python equivalente de punteros

En python todo funciona por referencia: >>> a = 1 >>> d = {‘a’:a} >>> d[‘a’] 1 >>> a = 2 >>> d[‘a’] 1 Quiero algo como esto >>> a = 1 >>> d = {‘a’:magical pointer to a} >>> d[‘a’] 1 >>> a = 2 >>> d[‘a’] 2 ¿Qué sustituirías por un puntero mágico […]

Punteros y matrices en Python ctypes

Tengo una DLL que contiene una función C con un prototipo como este: int c_read_block(uint32 addr, uint32 *buf, uint32 num); Quiero llamarlo desde Python usando ctypes. La función espera un puntero a un fragmento de memoria, en el que escribirá los resultados. No sé cómo construir y pasar un trozo de memoria así. La documentación […]

Accediendo al contenido de una matriz de variables con ctypes.

Uso ctypes para acceder a un archivo que lee la función C en python. Como los datos leídos son enormes y desconocidos en tamaño, uso **float en C. int read_file(const char *file,int *n_,int *m_,float **data_) {…} Las funciones mallocs una matriz 2d, llamada data , del tamaño apropiado, aquí n , y copia los valores […]