Articles of ctypes

¿Cómo emulo una estructura C de tamaño dynamic en Python usando ctypes?

Estoy escribiendo algo de código de Python para interactuar con una DLL de C que usa estructuras extensivamente. Una de esas estructuras contiene estructuras anidadas. Sé que esto no es un problema para el módulo ctypes. El problema es que hay una estructura de uso frecuente que, en C, se define a través de macro […]

Manipulación de píxeles con PIL. Imagen y ctypes.

Tengo una función C que realiza una manipulación de píxeles en una matriz 2D sin procesar de valores RGB de 8 bits. Obtengo la respuesta en una matriz c_ubyte . Mi código se parece aproximadamente a esto: from ctypes import cdll, CDLL, Structure, byref, c_utype, c_uint # get a reference to the C shared library […]

error al descargar una dll de 64 bits usando ctypes windll

Descubrí que hay varias publicaciones aquí sobre la descarga de un archivo DLL utilizando ctypes, y seguí exactamente la manera en que se dice que se trabaja desde ctypes import file = CDLL(‘file.dll’) # do some stuff here handle = file._handle # obtain the DLL handle windll.kernel32.FreeLibrary(handle) Sin embargo, estoy en Python 64 bit y […]

La longitud de datos esperada de Image.frombuffer de PIL al usar la matriz ctypes

Estoy usando Python, PIL y ctypes para hacer la manipulación de imágenes. Mientras hackeaba cosas, usé la función fromstring PIL para obtener el búfer de píxeles de ctypes en un objeto PIL. Simplemente iteré sobre la matriz, construyendo la cadena de python. Esto funciona tx = foo.tx tx.restype = POINTER(c_ubyte) result = tx(…args…) #TODO there […]

Cómo pasar información MPI a ctypes en python

Mi motivación es pasar la información MPI efectivamente de python a las funciones C invocadas a través de ctypes. Utilicé mpi4py para enlaces MPI en python. Me gustaría aprenderlo a través de un ejemplo simple de código MPI escrito en C e invocado a través de ctypes en python. He detallado los pasos y el […]

Usando el módulo de enumeración de Python para ctypes

Antes de que existiera el módulo de enum , c_int o tipos relacionados se usaban a menudo como sustitutos de enumeraciones. Pero esto no tuvo ni comprobar los tipos. Ahora que Python tiene un módulo de enum , ¿hay alguna forma de usarlo directamente con ctypes ?

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

Python ctypes – pasando matriz numpy – salida impar

Estoy usando ctypes y estoy pasando un ndarray a una c-function. Me da un comportamiento de salida extraño. Heres algún código: Función C: int foo(int * foo,int N){ for(int i=0;i<N;i++){ cout << "i " << i << " "<< foo[i] << endl; } return 0; } Pitón: from ctypes import * import numpy as np […]

Array de memoria compartida de Python, sin atributo get_obj ()

Estoy trabajando en la manipulación de matrices numpy utilizando el módulo de multiprocesamiento y me estoy topando con un problema al probar algunos de los códigos que he encontrado aquí. Específicamente, estoy creando una matriz ctypes a partir de una matriz numpy y luego trato de devolver la matriz ctypes a una matriz numpy. Aquí […]

Búfer de escritura de Python / memoria de visualización a matriz / bytearray / ctypes cadena de búfer

Problema: Datos binarios de registros de tamaño fijo. Quiere usar struct.unpack_from y struct.pack_into para manipular los datos binarios No queremos copias de los datos. Quiere múltiples vistas en la memoria para simplemente compensar cálculos, etc. Los datos pueden estar en un array.array bytearray o ctypes string buffer Lo que traté de hacer: part1 = buffer(binary_data, […]