Articles of punteros

Tipos de Python: copiando los contenidos de la Estructura.

Quiero imitar una pieza de código C en Python con ctypes, el código es algo así como: typedef struct { int x; int y; } point; void copy_point(point *a, point *b) { *a = *b; } En ctypes no es posible hacer lo siguiente: from ctypes import * class Point(Structure): _fields_ = [(“x”, c_int),(“y”, c_int)] […]

¿Cómo usar float ** en Python con Swig?

Estoy escribiendo enlaces de swig para algunas funciones de c. Una de estas funciones toma un flotador **. Ya estoy usando cpointer.i para los punteros normales y busqué en carrays.i , pero no encontré la forma de declarar un flotador **. ¿Que recomiendas? archivo de interfaz: extern int read_data (const char * file, int * […]

¿Cómo pasar el puntero de vuelta en ctypes?

No sé mucho sobre ctypes, recientemente comencé a trabajar con él. Tengo una función simple en dll tipo C que devuelve un puntero a la cadena generada dinámicamente. Funciona bien, pero debido a que asigné memoria manualmente a la cadena, debería liberarla después de usarla. Tengo algo como esto: extern “C” char* DLL_EXPORT func(const char* […]

Ejecutando código ensamblador con python

Quiero ejecutar el código ensamblador dentro de un script de python. ¿Es eso posible? En C la progtwigción sería así. static inline getesp(){ __asm__(“mov %esp, %eax”); } Pero, ¿cómo hacer eso con Python? ¿Es posible?

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 […]