Articles of punteros

Python: ¿Tamaño de referencia?

Tengo un proyecto que estoy planeando, y un poco de información que querré tener es la cantidad de memoria que ocupa una referencia en Python. AFAIK, una referencia en python es lo mismo que un puntero, y supongo que sería del mismo tamaño que un puntero de 32 bits o de 64 bits (pero podría […]

Uso de Ctypes de Python para pasar el puntero a una función DLL

Estoy intentando acceder a una función en un archivo DLL usando ctypes de Python. La descripción de la función proporcionada se encuentra a continuación. Prototype: Picam_ConnectDemoCamera( PicamModel model, const pichar* serial_number, PicamCameraID* id ) Description: Virtually connects the software-simulated ‘model’ with ‘serial_number’ and returns the camera id in `_id_` Notes: `_id_` is optional and can […]

Referencias en Python

Tengo una red de multidifusión que necesita enviar datos continuamente a todos los demás usuarios. Esta información cambiará constantemente, por lo que no quiero que el progtwigdor tenga que lidiar con el envío de paquetes a los usuarios. Debido a esto, estoy tratando de descubrir cómo puedo hacer una referencia a cualquier objeto o variable […]

SWIG python inicializa un puntero a NULL

¿Es posible inicializar un ptr a NULL desde el lado de python cuando se trata con el módulo SWIG? Por ejemplo, digamos que envolví una estructura trackt en un módulo de gulp m (_m.so), puedo crear un puntero a la estructura desde Python de la siguiente manera: import m track = m.track_t() esto solo hará […]

Python: cómo incrementar una instancia de ctypes POINTER

Suponga que p = ctypes.cast(“foo”, ctypes.POINTER(ctypes.c_char)) . Por lo tanto, tenemos p.contents.value == “f” . ¿Cómo puedo acceder directamente y manipular (por ejemplo, incrementar) el puntero? Por ejemplo, like (p + 1).contents.value == “o” .

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