Esto está relacionado con mi otra pregunta , pero sentí que debía formularla en una nueva pregunta. Básicamente, FLAC usa punteros de función para las devoluciones de llamada, y para implementar las devoluciones de llamada con ctypes, usa CFUNCTYPE para CFUNCTYPE un prototipo y luego usa la función prototype() para crearlos. El problema que tengo […]
Estoy tratando de usar Tesseract 3.02 con ctypes y cv2 en python. Tesseract proporciona un conjunto de API de estilo C expuesto a DLL, uno de ellos es el siguiente: TESS_API void TESS_CALL TessBaseAPISetImage(TessBaseAPI* handle, const unsigned char* imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line); Hasta ahora, mi código es el siguiente: tesseract […]
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)] […]
Estoy cargando un dll con ctypes bajo Cygwin con lo siguiente: import ctypes ctypes.cdll.LoadLibrary(‘foo.dll’) ¿Cómo puedo obtener la ruta absoluta de mi dll? El problema es que no tengo absolutamente ninguna pista donde se encuentra la DLL. ¿Puedo relacionarme con lo siguiente para obtener esta información? subprocess.Popen([“which”, lib], stdout=subprocess.PIPE).stdout.read().strip()
Estoy intentando simular ctrl + alt + del con keybd_event pero no hace nada, cosas como ctrl + esc o alt + tab funcionan, pero ctrl + alt + del no funciona. import ctypes ctypes.windll.user32.keybd_event(0x11, 0, 0, 0) #CTRL is down ctypes.windll.user32.keybd_event(0x12, 0, 0, 0) #ALT is down ctypes.windll.user32.keybd_event(0x2E, 0, 0, 0) #DEL is down […]
He estado aprendiendo Rust durante aproximadamente dos semanas, y hoy, entré en 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 respuesta ). Luego, traté de pasar una lista de cadenas (siguiendo el razonamiento detrás […]
Tengo el siguiente código import ctypes lib1 = ctypes.cdll.LoadLibrary(“./mylib.so”) # modify mylib.so (code generation and comstacktion) or even delete it lib2 = ctypes.cdll.LoadLibrary(“./mylib.so”) El problema es que lib2 refiere a la biblioteca compartida original, no a la nueva. Si elimino mylib.so entre las llamadas, no obtengo ningún error. Usar ctypes._reset_cache() no ayuda. ¿Cómo puedo indicarle […]
He estado trabajando con Python en un entorno de Windows y escribí un script para automatizar algunas tareas en un juego conocido. La tarea implica un uso intensivo de las entradas del mouse y del teclado. Sin embargo, dicho script solo tiene un problema: no puede enviar pulsaciones de teclas a la aplicación. He intentado […]
Quiero ejecutar un código helloword.cpp que toma algún argumento de la consola analiza esos argumentos y luego imprime “hola mundo” en la consola. Ahora, quiero analizar estos argumentos de un script de python parsearguments.py Así por ejemplo: def parse_arguments: …# some code return arguments Ahora, ¿cómo me comunico entre python y c ++? He estado […]
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* […]